Configuration

# Configuration options for analysis
# Set to TRUE to load existing results, FALSE to recompute
LOAD_EXISTING_RESULTS <- TRUE

# Analysis parameters
top_n_taxa <- 10  # Number of top taxa to display in partial correlation summaries

# Directory to save/load results
RESULTS_DIR <- "/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DEGxDAT/Results"

# Create results directory if it doesn't exist
if (!dir.exists(RESULTS_DIR)) {
  dir.create(RESULTS_DIR, recursive = TRUE)
  cat("Created results directory:", RESULTS_DIR, "\n")
}

# Function to save results with timestamp
save_results <- function(results, filename, results_dir = RESULTS_DIR) {
  timestamp <- format(Sys.time(), "%Y%m%d_%H%M%S")
  full_filename <- file.path(results_dir, paste0(filename, "_", timestamp, ".rds"))
  saveRDS(results, full_filename)
  cat("Saved results to:", full_filename, "\n")
  return(full_filename)
}

# Function to load most recent results file
load_latest_results <- function(filename_pattern, results_dir = RESULTS_DIR) {
  files <- list.files(results_dir, pattern = filename_pattern, full.names = TRUE)
  if (length(files) == 0) {
    cat("No existing results found for pattern:", filename_pattern, "\n")
    return(NULL)
  }
  latest_file <- files[order(file.info(files)$mtime, decreasing = TRUE)[1]]
  cat("Loading results from:", latest_file, "\n")
  return(readRDS(latest_file))
}

# Display configuration
cat("=== ANALYSIS CONFIGURATION ===\n")
## === ANALYSIS CONFIGURATION ===
cat("Load existing results:", LOAD_EXISTING_RESULTS, "\n")
## Load existing results: TRUE
cat("Results directory:", RESULTS_DIR, "\n")
## Results directory: /Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DEGxDAT/Results
cat("================================\n\n")
## ================================

Overview

This script performs integrated analysis of differentially abundant taxa (DAT) and differentially expressed genes (DEG) across three research questions:

  1. Parasite Exposure Response: What is the host-microbiome response to parasite exposure? (A- T- P- vs A- T- P+)
  2. Historical Contingency of Parasite Response: Is the host-microbiome response to parasite exposure historically contingent? (A- T- P- vs A+ T- P+, A- T+ P+, A+ T+ P+)
  3. Historical Contingency of Recovery: Is the host-microbiome recovery historically contingent? (A- T- P- vs A+ T- P-, A- T+ P-, A+ T+ P-)

Setup

(hide)

Click on tabs to display additional information.

Libraries

# Load required libraries for statistical analysis and table creation

library(gt)
library(pheatmap)
library(ggrepel)
library(igraph)
library(tidygraph)
library(ggraph)
library(DESeq2)
library(phyloseq)
library(microViz)
library(vegan)
library(RColorBrewer)
library(clusterProfiler)
library(ggpubr)
library(org.Dr.eg.db)
library(ppcor)
library(GO.db)
library(AnnotationDbi)
library(KEGGREST)
library(nptest)
library(parallel)
library(tidyverse)

Plotting

# Define treatment order and color palette
treatment_order <- c(
  "A- T- P-",  # Control
  "A- T- P+",  # Parasite
  "A+ T- P-",  # Antibiotics
  "A+ T- P+",  # Antibiotics_Parasite
  "A- T+ P-",  # Temperature
  "A- T+ P+",  # Temperature_Parasite
  "A+ T+ P-",  # Antibiotics_Temperature
  "A+ T+ P+"   # Antibiotics_Temperature_Parasite
)

# Custom color palette matching treatment order
treatment_colors <- c(
  "#1B9E77",  # A- T- P- (Control)
  "#D95F02",  # A- T- P+ (Parasite)
  "#7570B3",  # A+ T- P- (Antibiotics)
  "#E7298A",  # A+ T- P+ (Antibiotics_Parasite)
  "#66A61E",  # A- T+ P- (Temperature)
  "#E6AB02",  # A- T+ P+ (Temperature_Parasite)
  "#A6761D",  # A+ T+ P- (Antibiotics_Temperature)
  "#666666"   # A+ T+ P+ (Antibiotics_Temperature_Parasite)
)

# Create named vector for color scale
treatment_color_scale <- setNames(treatment_colors, treatment_order)

Functions

# Function to extract sample data as dataframe from phyloseq object
samdatAsDataframe <- function(ps) {
  samdat <- phyloseq::sample_data(ps)
  df <- data.frame(samdat, check.names = FALSE, stringsAsFactors = FALSE)
  return(df)
}

# Function to rename variables in phyloseq object
ps_rename <- function(ps, ...) {
  ps <- microViz::ps_get(ps)
  df <- samdatAsDataframe(ps)
  df <- dplyr::rename(.data = df, ...)
  phyloseq::sample_data(ps) <- df
  return(ps)
}

# SourceFolder function
source(here::here("Code", "R", "Functions", "StartFunctions", "sourceFolder.R"))

# Import all helper functions found in `/Functions`
sourceFolder(here::here("Code", "R", "Functions", "StartFunctions"), T)
## 
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
## 
##     discard
## The following object is masked from 'package:readr':
## 
##     col_factor
## Loading required package: future
## 
## Attaching package: 'future'
## The following objects are masked from 'package:igraph':
## 
##     %->%, %<-%
## Loading required package: grid
## ========================================
## ComplexHeatmap version 2.18.0
## Bioconductor page: http://bioconductor.org/packages/ComplexHeatmap/
## Github page: https://github.com/jokergoo/ComplexHeatmap
## Documentation: http://jokergoo.github.io/ComplexHeatmap-reference
## 
## If you use it in published research, please cite either one:
## - Gu, Z. Complex Heatmap Visualization. iMeta 2022.
## - Gu, Z. Complex heatmaps reveal patterns and correlations in multidimensional 
##     genomic data. Bioinformatics 2016.
## 
## 
## The new InteractiveComplexHeatmap package can directly export static 
## complex heatmaps into an interactive Shiny app with zero effort. Have a try!
## 
## This message can be suppressed by:
##   suppressPackageStartupMessages(library(ComplexHeatmap))
## ========================================
## ! pheatmap() has been masked by ComplexHeatmap::pheatmap(). Most of the arguments
##    in the original pheatmap() are identically supported in the new function. You 
##    can still use the original function by explicitly calling pheatmap::pheatmap().
## 
## Attaching package: 'ComplexHeatmap'
## The following object is masked from 'package:pheatmap':
## 
##     pheatmap
## Loading required package: data.table
## 
## Attaching package: 'data.table'
## The following objects are masked from 'package:lubridate':
## 
##     hour, isoweek, mday, minute, month, quarter, second, wday, week,
##     yday, year
## The following objects are masked from 'package:dplyr':
## 
##     between, first, last
## The following object is masked from 'package:purrr':
## 
##     transpose
## The following object is masked from 'package:SummarizedExperiment':
## 
##     shift
## The following object is masked from 'package:GenomicRanges':
## 
##     shift
## The following object is masked from 'package:IRanges':
## 
##     shift
## The following objects are masked from 'package:S4Vectors':
## 
##     first, second
## Loading required package: doParallel
## Loading required package: foreach
## 
## Attaching package: 'foreach'
## The following objects are masked from 'package:purrr':
## 
##     accumulate, when
## Loading required package: iterators
## Loading required package: GUniFrac
## Registered S3 method overwritten by 'rmutil':
##   method         from
##   print.response httr
## Loading required package: magrittr
## 
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
## 
##     set_names
## The following object is masked from 'package:tidyr':
## 
##     extract
## The following object is masked from 'package:GenomicRanges':
## 
##     subtract
## Loading required package: rlang
## 
## Attaching package: 'rlang'
## The following object is masked from 'package:magrittr':
## 
##     set_names
## The following object is masked from 'package:data.table':
## 
##     :=
## The following objects are masked from 'package:purrr':
## 
##     %@%, flatten, flatten_chr, flatten_dbl, flatten_int, flatten_lgl,
##     flatten_raw, invoke, splice
## The following object is masked from 'package:Biobase':
## 
##     exprs
## The following object is masked from 'package:igraph':
## 
##     is_named
## 
## microbiome R package (microbiome.github.com)
##     
## 
## 
##  Copyright (C) 2011-2022 Leo Lahti, 
##     Sudarshan Shetty et al. <microbiome.github.io>
## 
## Attaching package: 'microbiome'
## The following object is masked from 'package:scales':
## 
##     alpha
## The following object is masked from 'package:vegan':
## 
##     diversity
## The following object is masked from 'package:SummarizedExperiment':
## 
##     coverage
## The following object is masked from 'package:GenomicRanges':
## 
##     coverage
## The following objects are masked from 'package:IRanges':
## 
##     coverage, transform
## The following object is masked from 'package:S4Vectors':
## 
##     transform
## The following object is masked from 'package:igraph':
## 
##     diversity
## The following object is masked from 'package:ggplot2':
## 
##     alpha
## The following object is masked from 'package:base':
## 
##     transform
## Loading required package: ape
## 
## Attaching package: 'ape'
## The following object is masked from 'package:dplyr':
## 
##     where
## The following object is masked from 'package:ggpubr':
## 
##     rotate
## The following objects are masked from 'package:igraph':
## 
##     degree, edges, mst, ring
## Loading required package: nlme
## 
## Attaching package: 'nlme'
## The following object is masked from 'package:dplyr':
## 
##     collapse
## The following object is masked from 'package:IRanges':
## 
##     collapse
## Loading required package: carData
## 
## Attaching package: 'car'
## The following object is masked from 'package:dplyr':
## 
##     recode
## The following object is masked from 'package:purrr':
## 
##     some
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
## 
##     expand, pack, unpack
## The following object is masked from 'package:S4Vectors':
## 
##     expand
## 
## Attaching package: 'lme4'
## The following object is masked from 'package:nlme':
## 
##     lmList
## Loading required package: mvtnorm
## Loading required package: survival
## 
## Attaching package: 'survival'
## The following object is masked from 'package:future':
## 
##     cluster
## Loading required package: TH.data
## 
## Attaching package: 'TH.data'
## The following object is masked from 'package:MASS':
## 
##     geyser
## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## 3 files sourced from folder "/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/R/Functions/StartFunctions"
sourceFolder(here::here("Code", "R", "Functions", "HelperFunctions"), T)
## 9 files sourced from folder "/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/R/Functions/HelperFunctions"
# Function to map gene IDs to Entrez IDs
get_entrez <- function(deg_df) {
  # This function maps gene symbols (from the input data frame) to Entrez IDs using org.Dr.eg.db.
  # INPUT: deg_df - a data frame with a column 'gene_id' (gene symbols)
  # OUTPUT: the input data frame with an added 'entrezgene_id' column, filtered to only those with valid Entrez IDs

  # Extract gene symbols from the input data frame
  gene_ids <- deg_df$gene_id
  
  # Map gene symbols to Entrez IDs using AnnotationDbi
  entrez_map <- AnnotationDbi::mapIds(
    org.Dr.eg.db,
    keys = gene_ids,
    column = "ENTREZID",
    keytype = "SYMBOL",
    multiVals = "first"
  ) %>%
    tibble::enframe(name = "gene_id", value = "entrezgene_id") %>%
    dplyr::filter(!is.na(entrezgene_id))
  
  # Join the Entrez IDs back to the original data, keep only those with valid Entrez IDs
  result <- deg_df %>%
    dplyr::left_join(entrez_map, by = "gene_id") %>%
    dplyr::filter(!is.na(entrezgene_id)) %>%
    dplyr::distinct(entrezgene_id, .keep_all = TRUE)
  
  return(result)
}

# Function to perform GO enrichment and summarize correlations for each GO term
get_go_correlations <- function(entrez_df) {
  # This function performs GO enrichment analysis on a set of Entrez IDs and summarizes correlation statistics for each GO term.
  # INPUT: entrez_df - a data frame with 'entrezgene_id', 'correlation', 'TaxaID', etc.
  # OUTPUT: a summary data frame with GO terms, p-values, mean correlations, and gene/taxa lists

  cat("\nProcessing contrast with", nrow(entrez_df), "genes\n")
  
  # Run GO enrichment analysis (Biological Process ontology)
  go_results <- enrichGO(
    gene = entrez_df$entrezgene_id,
    OrgDb = org.Dr.eg.db,
    keyType = "ENTREZID",
    ont = "BP",
    pAdjustMethod = "BH",
    pvalueCutoff = 0.1,
    qvalueCutoff = 0.2,
    readable = TRUE
  ) %>%
    as.data.frame() %>%
    dplyr::select(ID, Description, p.adjust, Count, geneID) %>%
    dplyr::mutate(log_padj = -log10(p.adjust))
  
  # Get GO term categories and definitions for each GO term
  go_categories <- AnnotationDbi::select(
    GO.db,
    keys = go_results$ID,
    columns = c("GOID", "TERM", "ONTOLOGY", "DEFINITION"),
    keytype = "GOID"
  )
  
  # For each GO term, get its parent terms (hierarchy)
  go_parents <- lapply(go_results$ID, function(go_id) {
    parents <- GO.db::GOBPANCESTOR[[go_id]]
    if (is.null(parents)) return(NA)
    parent_terms <- AnnotationDbi::select(
      GO.db,
      keys = parents,
      columns = c("GOID", "TERM"),
      keytype = "GOID"
    )
    return(list(parent_terms$TERM))
  })
  
  # Create a mapping of GO IDs to their parent terms
  go_hierarchy <- tibble::tibble(
    GOID = go_results$ID,
    parent_terms = go_parents
  )
  
  # Map Entrez IDs to gene symbols for easier interpretation
  symbol_to_entrez <- AnnotationDbi::mapIds(
    org.Dr.eg.db,
    keys = entrez_df$entrezgene_id,
    column = "SYMBOL",
    keytype = "ENTREZID",
    multiVals = "first"
  ) %>%
    tibble::enframe(name = "entrezgene_id", value = "SYMBOL") %>%
    dplyr::filter(!is.na(SYMBOL))
  
  # Prepare a mapping of gene IDs to correlation and taxa information
  gene_cor_map <- entrez_df %>%
    dplyr::select(entrezgene_id, correlation, TaxaID, abs_correlation) %>%
    dplyr::left_join(symbol_to_entrez, by = "entrezgene_id") %>%
    dplyr::select(SYMBOL, correlation, TaxaID, abs_correlation) %>%
    dplyr::filter(!is.na(SYMBOL))
  
  # Expand the geneID column (GO term members) and join with correlation/taxa info
  go_results_long <- go_results %>%
    tidyr::separate_rows(geneID, sep = "/") %>%
    dplyr::left_join(gene_cor_map, by = c("geneID" = "SYMBOL")) %>%
    dplyr::left_join(go_categories, by = c("ID" = "GOID")) %>%
    dplyr::left_join(go_hierarchy, by = c("ID" = "GOID"))
  
  # Summarize by GO term: mean correlation, number of positive/negative, gene/taxa lists, etc.
  go_results_summary <- go_results_long %>%
    dplyr::group_by(ID, Description, TERM, ONTOLOGY, DEFINITION, parent_terms, p.adjust, Count, log_padj) %>%
    dplyr::summarise(
      mean_correlation = mean(correlation, na.rm = TRUE),
      mean_abs_correlation = mean(abs_correlation, na.rm = TRUE),
      n_positive = sum(correlation > 0, na.rm = TRUE),
      n_negative = sum(correlation < 0, na.rm = TRUE),
      gene_list = list(geneID),
      correlation_list = list(correlation),
      taxa_list = list(TaxaID),
      .groups = "drop"
    ) %>%
    dplyr::arrange(p.adjust)
  
  return(go_results_summary)
}

# Function to enrich KEGG pathways for a set of significant gene-taxa correlations
get_kegg_pathways <- function(sig_partial_cor) {
  # This function performs KEGG pathway enrichment for a set of significant gene-taxa correlations.
  # INPUT: sig_partial_cor - data frame with at least 'gene_id' (gene symbol)
  # OUTPUT: summary table of enriched KEGG pathways, with gene/taxa/correlation info for each pathway

  cat("\nProcessing KEGG analysis for significant correlations\n")
  
  # Get unique gene symbols from significant correlations
  sig_genes <- unique(sig_partial_cor$gene_id)
  cat("Number of significant genes:", length(sig_genes), "\n")
  
  # Map gene symbols to Entrez IDs
  entrez_ids <- AnnotationDbi::mapIds(
    org.Dr.eg.db,
    keys = sig_genes,
    column = "ENTREZID",
    keytype = "SYMBOL",
    multiVals = "first"
  ) %>%
    tibble::enframe(name = "SYMBOL", value = "ENTREZID") %>%
    dplyr::filter(!is.na(ENTREZID))
  
  cat("Number of genes successfully mapped to Entrez IDs:", nrow(entrez_ids), "\n")
  
  # Run KEGG enrichment analysis
  kegg_results <- enrichKEGG(
    gene = entrez_ids$ENTREZID,
    organism = 'dre',  # Danio rerio
    keyType = 'ncbi-geneid',
    pAdjustMethod = "BH",
    pvalueCutoff = .1,
    qvalueCutoff = .2
  )
  
  if (is.null(kegg_results)) {
    cat("No KEGG pathways found.\n")
    return(NULL)
  }
  
  kegg_results <- as.data.frame(kegg_results) %>%
    dplyr::select(ID, Description, p.adjust, Count, geneID) %>%
    dplyr::mutate(log_padj = -log10(p.adjust))
  
  # For each pathway, get additional info (name, description, class)
  kegg_info <- lapply(kegg_results$ID, function(path_id) {
    clean_id <- gsub("dre", "", path_id)
    tryCatch({
      path_info <- KEGGREST::keggGet(clean_id)
      if (length(path_info) > 0) {
        return(list(
          name = path_info[[1]]$NAME,
          description = ifelse(is.null(path_info[[1]]$DESCRIPTION),
                             path_info[[1]]$NAME,
                             path_info[[1]]$DESCRIPTION),
          class = ifelse(is.null(path_info[[1]]$CLASS),
                        "Not specified",
                        path_info[[1]]$CLASS)
        ))
      }
    }, error = function(e) {
      tryCatch({
        path_info <- KEGGREST::keggGet(path_id)
        if (length(path_info) > 0) {
          return(list(
            name = path_info[[1]]$NAME,
            description = ifelse(is.null(path_info[[1]]$DESCRIPTION),
                               path_info[[1]]$NAME,
                               path_info[[1]]$DESCRIPTION),
            class = ifelse(is.null(path_info[[1]]$CLASS),
                          "Not specified",
                          path_info[[1]]$CLASS)
          ))
        }
      }, error = function(e2) {
        return(list(
          name = "Not available",
          description = "Not available",
          class = "Not available"
        ))
      })
    })
  })
  
  # Create a mapping of KEGG IDs to their information
  kegg_details <- tibble::tibble(
    KEGGID = kegg_results$ID,
    Name = sapply(kegg_info, function(x) x$name),
    Description = sapply(kegg_info, function(x) x$description),
    Class = sapply(kegg_info, function(x) x$class)
  )
  
  # Map Entrez IDs to gene symbols
  id_mapping <- entrez_ids %>%
    dplyr::select(ENTREZID, SYMBOL)
  
  # Expand geneID column and join with gene symbol mapping
  kegg_results_long <- kegg_results %>%
    tidyr::separate_rows(geneID, sep = "/") %>%
    dplyr::mutate(geneID = as.character(geneID)) %>%
    dplyr::left_join(id_mapping, by = c("geneID" = "ENTREZID"))

  # For each pathway, summarize gene-taxa-correlation relationships
  kegg_summary <- kegg_results_long %>%
    dplyr::group_by(ID) %>%
    dplyr::summarise(
      Name = Description[1],
      Description = kegg_details$Description[kegg_details$KEGGID == ID[1]][1],
      Class = kegg_details$Class[kegg_details$KEGGID == ID[1]][1],
      p.adjust = p.adjust[1],
      Count = Count[1],
      Gene_List = list(unique(SYMBOL)),
      .groups = "drop"
    ) %>%
    dplyr::mutate(
      Gene_Taxa_Relations = lapply(Gene_List, function(genes) {
        sig_partial_cor %>%
          dplyr::filter(gene_id %in% genes) %>%
          dplyr::select(gene_id, TaxaID, correlation) %>%
          dplyr::arrange(gene_id, TaxaID)
      }),
      Taxa_List = lapply(Gene_Taxa_Relations, function(rel) {
        unique(rel$TaxaID)
      }),
      Correlation_List = lapply(Gene_Taxa_Relations, function(rel) {
        rel$correlation
      })
    ) %>%
    dplyr::arrange(p.adjust)

  return(kegg_summary)
}

# Helper function to get top correlations by correlation, taxa, or gene
gen_get_top_correlations <- function(correlation_results, top_n = 100, top_by = c("correlation", "taxa", "gene")) {
  top_by <- match.arg(top_by)
  
  # Check if we have any significant correlations
  sig_correlations <- correlation_results %>%
    dplyr::filter(fdr < 0.05)
  
  if(nrow(sig_correlations) == 0) {
    cat("WARNING: No significant correlations found (FDR < 0.05). Returning empty data frame.\n")
    return(data.frame())
  }
  
  if (top_by == "correlation") {
    top_correlations <- sig_correlations %>%
      dplyr::arrange(desc(abs_correlation)) %>%
      head(top_n)
  } else if (top_by == "taxa") {
    top_taxa <- sig_correlations %>%
      dplyr::group_by(TaxaID) %>%
      dplyr::summarise(n = n()) %>%
      dplyr::arrange(desc(n)) %>%
      head(top_n) %>%
      dplyr::pull(TaxaID)
    
    if(length(top_taxa) == 0) {
      cat("WARNING: No taxa found with significant correlations. Returning empty data frame.\n")
      return(data.frame())
    }
    
    top_correlations <- sig_correlations %>%
      dplyr::filter(TaxaID %in% top_taxa)
  } else if (top_by == "gene") {
    top_genes <- sig_correlations %>%
      dplyr::group_by(gene_id) %>%
      dplyr::summarise(n = n()) %>%
      dplyr::arrange(desc(n)) %>%
      head(top_n) %>%
      dplyr::pull(gene_id)
    
    if(length(top_genes) == 0) {
      cat("WARNING: No genes found with significant correlations. Returning empty data frame.\n")
      return(data.frame())
    }
    
    top_correlations <- sig_correlations %>%
      dplyr::filter(gene_id %in% top_genes)
  }
  
  return(top_correlations)
}

# Function to perform integrated analysis for a single research question
perform_integrated_analysis <- function(question_name, 
                                       dat_results, 
                                       deg_results, 
                                       taxa_counts, 
                                       expr_counts, 
                                       metadata, 
                                       treatment_comparison,
                                       top_n = 100,
                                       top_by = c("correlation", "taxa", "gene")) {
  # This function performs the full DEGxDAT analysis for a single research question (single treatment comparison).
  # INPUTS:
  #   - question_name: string, name of the research question
  #   - dat_results: data frame of DAT results
  #   - deg_results: data frame of DEG results
  #   - taxa_counts: OTU/taxa count matrix
  #   - expr_counts: gene expression count matrix
  #   - metadata: sample metadata
  #   - treatment_comparison: vector of treatment names to compare
  #   - top_n: number of top correlations to use for partial correlation analysis
  #   - top_by: selection of top correlations by correlation, taxa, or gene
  # OUTPUT: list with all results for this comparison (correlations, significant genes/taxa, etc.)

  cat("\n=== ANALYSIS FOR:", question_name, "===\n")
  cat("Treatment comparison:", paste(treatment_comparison, collapse = " vs "), "\n")
  
  # Set seed for reproducibility
  set.seed(42)
  
  # Filter for significant DEGs and DATs
  deg_sig <- deg_results %>%
    dplyr::filter(padj < 0.05)
  
  dat_sig <- dat_results %>%
    dplyr::filter(qval < 0.05)
  
  cat("Significant genes:", nrow(deg_sig), "\n")
  cat("Significant taxa:", nrow(dat_sig), "\n")
  
  # Check if we have any significant genes or taxa
  if(nrow(deg_sig) == 0 || nrow(dat_sig) == 0) {
    cat("WARNING: No significant genes or taxa found. Returning empty results.\n")
    return(list(
      question_name = question_name,
      treatment_comparison = treatment_comparison,
      correlation_results = data.frame(),
      sig_correlations = data.frame(),
      partial_cor_results = data.frame(),
      sig_partial_correlations = data.frame(),
      failed_pairs = list(),
      deg_sig = deg_sig,
      dat_sig = dat_sig,
      samples = character(0)
    ))
  }
  
  # Get relevant samples for this comparison
  rna_samples <- metadata %>%
    dplyr::filter(Treatment %in% treatment_comparison) %>%
    dplyr::filter(Sample %in% colnames(expr_counts)) %>%
    dplyr::pull(Sample) %>%
    as.character()
  
  cat("Samples for analysis:", length(rna_samples), "\n")
  
  # Check if we have enough samples
  if(length(rna_samples) < 3) {
    cat("WARNING: Insufficient samples for analysis. Returning empty results.\n")
    return(list(
      question_name = question_name,
      treatment_comparison = treatment_comparison,
      correlation_results = data.frame(),
      sig_correlations = data.frame(),
      partial_cor_results = data.frame(),
      sig_partial_correlations = data.frame(),
      failed_pairs = list(),
      deg_sig = deg_sig,
      dat_sig = dat_sig,
      samples = rna_samples
    ))
  }
  
  # Filter expression data for significant genes and relevant samples
  filtered_expr <- expr_counts %>%
    dplyr::filter(gene %in% deg_sig$gene) %>%
    dplyr::select(gene, gene_id, gene_name, any_of(rna_samples))
  
  # Filter taxa data for significant taxa and relevant samples
  filtered_taxa <- taxa_counts %>%
    as.data.frame() %>%
    tibble::rownames_to_column(var = "Sample") %>%
    dplyr::mutate(Sample = gsub("^f", "", Sample)) %>%
    dplyr::select(Sample, any_of(dat_sig$taxa)) %>%
    dplyr::filter(Sample %in% rna_samples)
  
  # Check if we have data after filtering
  if(nrow(filtered_expr) == 0 || ncol(filtered_taxa) <= 1) {
    cat("WARNING: No expression or taxa data available after filtering. Returning empty results.\n")
    return(list(
      question_name = question_name,
      treatment_comparison = treatment_comparison,
      correlation_results = data.frame(),
      sig_correlations = data.frame(),
      partial_cor_results = data.frame(),
      sig_partial_correlations = data.frame(),
      failed_pairs = list(),
      deg_sig = deg_sig,
      dat_sig = dat_sig,
      samples = rna_samples
    ))
  }
  
  # Normalize gene expression data (z-score per gene)
  normalized_expr <- filtered_expr %>%
    tidyr::pivot_longer(
      cols = -c(gene, gene_id, gene_name),
      names_to = "Sample",
      values_to = "count"
    ) %>%
    dplyr::group_by(gene_id) %>%
    dplyr::mutate(
      z_score = (count - mean(count)) / sd(count)
    ) %>%
    dplyr::select(-count) %>%
    tidyr::pivot_wider(
      names_from = Sample,
      values_from = z_score
    )
  
  # Normalize taxa data (z-score per taxon)
  prepared_taxa <- filtered_taxa %>%
    tidyr::pivot_longer(
      cols = -Sample,
      names_to = "TaxaID",
      values_to = "abundance"
    ) %>%
    dplyr::group_by(TaxaID) %>%
    dplyr::mutate(
      z_score = (abundance - mean(abundance)) / sd(abundance)
    ) %>%
    dplyr::select(Sample, TaxaID, z_score) %>%
    dplyr::rename(abundance = z_score) %>%
    dplyr::mutate(Sample = as.character(Sample))
  
  # Prepare expression data for correlation
  prepared_expr <- normalized_expr %>%
    tidyr::pivot_longer(
      cols = -c(gene, gene_id, gene_name),
      names_to = "Sample",
      values_to = "z_score"
    )
  
  # Calculate gene-taxa correlations (Spearman)
  correlation_results <- prepared_expr %>%
    dplyr::left_join(
      prepared_taxa,
      by = "Sample"
    ) %>%
    dplyr::group_by(gene_id, gene_name, TaxaID) %>%
    dplyr::summarise(
      correlation = cor(z_score, abundance, method = "spearman"),
      .groups = "drop"
    ) %>%
    dplyr::mutate(
      abs_correlation = abs(correlation)
    ) %>%
    dplyr::arrange(desc(abs_correlation))
  
  # Calculate significance (p-value, FDR)
  correlation_results <- correlation_results %>%
    dplyr::mutate(
      p_value = 2 * (1 - pnorm(abs(correlation) * sqrt((nrow(filtered_taxa) - 2) / (1 - correlation^2)))),
      fdr = p.adjust(p_value, method = "BH")
    )
  
  # Get significant correlations (FDR < 0.05)
  sig_correlations <- correlation_results %>%
    dplyr::filter(fdr < 0.05) %>%
    dplyr::arrange(desc(abs_correlation))
  
  cat("Significant correlations:", nrow(sig_correlations), "\n")
  
  # Check if we have any significant correlations before proceeding with partial correlation
  if(nrow(sig_correlations) == 0) {
    cat("WARNING: No significant correlations found. Skipping partial correlation analysis.\n")
    return(list(
      question_name = question_name,
      treatment_comparison = treatment_comparison,
      correlation_results = correlation_results,
      sig_correlations = sig_correlations,
      partial_cor_results = data.frame(),
      sig_partial_correlations = data.frame(),
      failed_pairs = list(),
      deg_sig = deg_sig,
      dat_sig = dat_sig,
      samples = rna_samples
    ))
  }
  
  # Get top gene-taxa pairs for partial correlation based on user selection
  top_correlations <- gen_get_top_correlations(correlation_results, top_n = top_n, top_by = top_by)
  
  # Check if we have any top correlations
  if(nrow(top_correlations) == 0) {
    cat("WARNING: No top correlations found for partial correlation analysis.\n")
    return(list(
      question_name = question_name,
      treatment_comparison = treatment_comparison,
      correlation_results = correlation_results,
      sig_correlations = sig_correlations,
      partial_cor_results = data.frame(),
      sig_partial_correlations = data.frame(),
      failed_pairs = list(),
      deg_sig = deg_sig,
      dat_sig = dat_sig,
      samples = rna_samples
    ))
  }
  
  cat(paste0("Top ", nrow(top_correlations), " by ", top_by, " for partial correlation:\n"))
  print(top_correlations %>% dplyr::select(gene_id, TaxaID, abs_correlation))
  
  # Only run partial correlation on these gene-taxa pairs
  top_pairs <- top_correlations %>%
    dplyr::select(gene_id, TaxaID) %>%
    dplyr::distinct()
  
  # Check if we have valid gene-taxa pairs
  if(nrow(top_pairs) == 0 || any(is.na(top_pairs$gene_id)) || any(is.na(top_pairs$TaxaID))) {
    cat("WARNING: No valid gene-taxa pairs found for partial correlation analysis.\n")
    return(list(
      question_name = question_name,
      treatment_comparison = treatment_comparison,
      correlation_results = correlation_results,
      sig_correlations = sig_correlations,
      partial_cor_results = data.frame(),
      sig_partial_correlations = data.frame(),
      failed_pairs = list(),
      deg_sig = deg_sig,
      dat_sig = dat_sig,
      samples = rna_samples
    ))
  }
  
  # Perform partial correlation analysis (controlling for worm counts)
  cat("Performing partial correlation analysis...\n")
  
  # Convert filtered expression data to wide format with samples as rows
  expr_wide <- filtered_expr %>%
    tidyr::pivot_longer(
      cols = -c(gene, gene_id, gene_name),
      names_to = "Sample",
      values_to = "count"
    ) %>%
    dplyr::group_by(gene_id) %>%
    dplyr::mutate(
      z_score = (count - mean(count)) / sd(count)
    ) %>%
    dplyr::select(-c(count, gene_name, gene)) %>%
    tidyr::pivot_wider(
      names_from = gene_id,
      values_from = z_score
    ) %>%
    dplyr::arrange(as.numeric(Sample))
  
  # Convert filtered taxa data to wide format with samples as rows
  taxa_wide <- filtered_taxa %>%
    tidyr::pivot_longer(
      cols = -Sample,
      names_to = "TaxaID",
      values_to = "abundance"
    ) %>%
    tidyr::pivot_wider(
      names_from = TaxaID,
      values_from = abundance
    ) %>%
    dplyr::mutate(Sample = as.character(Sample)) %>%
    dplyr::arrange(as.numeric(Sample))
  
  # Create control variable matrix (worm counts)
  control_matrix <- metadata %>%
    dplyr::filter(Sample %in% rna_samples) %>%
    dplyr::arrange(Sample) %>%
    dplyr::select(Total.Worm.Count) %>%
    as.matrix()
  
  # Verify sample alignment
  if(!all(expr_wide$Sample == taxa_wide$Sample) || 
     !all(expr_wide$Sample == rownames(control_matrix))) {
    stop("Sample order mismatch between expression, taxa, and control data")
  }
  
  # Initialize results storage for partial correlations
  partial_cor_results <- list()
  failed_pairs <- list()
  
  # Set up parallel processing
  library(parallel)
  cl <- makeCluster(6)  # Create a cluster with 6 cores
  on.exit(stopCluster(cl))  # Ensure cluster is stopped when done
  
  # Calculate partial correlations for the top pairs
  for(i in 1:nrow(top_pairs)) {
    gene <- top_pairs$gene_id[i]
    taxa <- top_pairs$TaxaID[i]
    
    # Skip if gene or taxa is NA
    if(is.na(gene) || is.na(taxa)) {
      failed_pairs[[paste(gene, taxa, sep = "_")]] <- "NA gene or taxa ID"
      next
    }
    
    # Check if gene and taxa exist in the data
    if(!gene %in% colnames(expr_wide) || !taxa %in% colnames(taxa_wide)) {
      failed_pairs[[paste(gene, taxa, sep = "_")]] <- "Gene or taxa not found in data"
      next
    }
    
    # Get data for this gene-taxa pair
    x <- expr_wide[[gene]]
    y <- taxa_wide[[taxa]]
    
    # Skip if any data is missing
    if(any(is.na(c(x, y)))) {
      failed_pairs[[paste(gene, taxa, sep = "_")]] <- "Missing data"
      next
    }
    
    set.seed(42)
    
    # Calculate partial correlation
    res_pcor <- try(nptest::np.cor.test(
      x = x,
      y = y,
      z = control_matrix,
      partial = TRUE,
      parallel = TRUE,
      cl = cl,
      R = 1000,
      na.rm = TRUE
    ), silent = TRUE)
    
    # Only store results if calculation was successful
    if(!inherits(res_pcor, "try-error")) {
      partial_cor_results[[paste(gene, taxa, sep = "_")]] <- list(
        gene_id = gene,
        taxa_id = taxa,
        correlation = res_pcor$estimate,
        p_value = res_pcor$p.value
      )
    } else {
      failed_pairs[[paste(gene, taxa, sep = "_")]] <- as.character(res_pcor)
    }
  }
  
  # Convert partial correlation results to data frame
  if(length(partial_cor_results) > 0) {
    partial_cor_df <- do.call(rbind, lapply(partial_cor_results, function(x) {
      data.frame(
        gene_id = x$gene_id,
        taxa_id = x$taxa_id,
        correlation = x$correlation,
        p_value = x$p_value
      )
    })) %>%
      dplyr::mutate(
        fdr = p.adjust(p_value, method = "BH"),
        abs_correlation = abs(correlation)
      ) %>%
      dplyr::arrange(desc(abs_correlation))
    
    # Get significant partial correlations (FDR < 0.1)
    sig_partial_cor <- partial_cor_df %>%
      dplyr::filter(fdr < 0.1) %>%
      dplyr::arrange(desc(abs_correlation))
    
    cat("Significant partial correlations (FDR < 0.1):", nrow(sig_partial_cor), "\n")
  } else {
    partial_cor_df <- data.frame()
    sig_partial_cor <- data.frame()
    cat("No successful partial correlations were calculated.\n")
  }
  
  # Return all results for this comparison
  return(list(
    question_name = question_name,
    treatment_comparison = treatment_comparison,
    correlation_results = correlation_results,
    sig_correlations = sig_correlations,
    partial_cor_results = partial_cor_df,
    sig_partial_correlations = sig_partial_cor,
    failed_pairs = failed_pairs,
    deg_sig = deg_sig,
    dat_sig = dat_sig,
    samples = rna_samples
  ))
}

# Function to perform all pairwise comparisons for a research question
perform_pairwise_analysis <- function(question_name, 
                                     dat_results, 
                                     deg_results, 
                                     taxa_counts, 
                                     expr_counts, 
                                     metadata, 
                                     base_treatment,
                                     comparison_treatments,
                                     top_n = 100,
                                     top_by = c("correlation", "taxa", "gene")) {
  # This function runs DEGxDAT analysis for all pairwise comparisons between a base treatment and a set of comparison treatments.
  # INPUTS:
  #   - question_name: string, name of the research question
  #   - dat_results, deg_results, taxa_counts, expr_counts, metadata: as above
  #   - base_treatment: string, the reference treatment
  #   - comparison_treatments: vector of treatments to compare to base
  # OUTPUT: list with all pairwise results and combined summary tables

  cat("\n=== PAIRWISE ANALYSIS FOR:", question_name, "===\n")
  cat("Base treatment:", base_treatment, "\n")
  cat("Comparison treatments:", paste(comparison_treatments, collapse = ", "), "\n")
  
  # Store results for each pairwise comparison
  pairwise_results <- list()
  
  # Loop over each comparison treatment
  for(i in seq_along(comparison_treatments)) {
    comparison_treatment <- comparison_treatments[i]
    comparison_name <- paste(base_treatment, "vs", comparison_treatment)
    
    cat("\n--- Comparison", i, ":", comparison_name, "---\n")
    
    # Create treatment comparison vector
    treatment_comparison <- c(base_treatment, comparison_treatment)
    
    # Run integrated analysis for this pair
    result <- perform_integrated_analysis(
      question_name = comparison_name,
      dat_results = dat_results,
      deg_results = deg_results,
      taxa_counts = taxa_counts,
      expr_counts = expr_counts,
      metadata = metadata,
      treatment_comparison = treatment_comparison,
      top_n = top_n,
      top_by = top_by
    )
    
    # Add comparison info to result
    result$comparison_name <- comparison_name
    result$base_treatment <- base_treatment
    result$comparison_treatment <- comparison_treatment
    
    pairwise_results[[comparison_name]] <- result
  }
  
  # Combine significant correlations from all pairs (handle empty data frames)
  combined_correlations <- do.call(rbind, lapply(pairwise_results, function(x) {
    if(nrow(x$sig_correlations) > 0) {
      x$sig_correlations %>%
        dplyr::mutate(
          comparison_name = x$comparison_name,
          base_treatment = x$base_treatment,
          comparison_treatment = x$comparison_treatment
        )
    } else {
      data.frame()
    }
  }))
  
  # Combine all correlations from all pairs (handle empty data frames)
  combined_all_correlations <- do.call(rbind, lapply(pairwise_results, function(x) {
    if(nrow(x$correlation_results) > 0) {
      x$correlation_results %>%
        dplyr::mutate(
          comparison_name = x$comparison_name,
          base_treatment = x$base_treatment,
          comparison_treatment = x$comparison_treatment
        )
    } else {
      data.frame()
    }
  }))
  
  # Combine partial correlation results from all pairs
  combined_partial_correlations <- do.call(rbind, lapply(pairwise_results, function(x) {
    if(nrow(x$partial_cor_results) > 0) {
      x$partial_cor_results %>%
        dplyr::mutate(
          comparison_name = x$comparison_name,
          base_treatment = x$base_treatment,
          comparison_treatment = x$comparison_treatment
        )
    } else {
      data.frame()
    }
  }))
  
  # Combine significant partial correlations from all pairs
  combined_sig_partial_correlations <- do.call(rbind, lapply(pairwise_results, function(x) {
    if(nrow(x$sig_partial_correlations) > 0) {
      x$sig_partial_correlations %>%
        dplyr::mutate(
          comparison_name = x$comparison_name,
          base_treatment = x$base_treatment,
          comparison_treatment = x$comparison_treatment
        )
    } else {
      data.frame()
    }
  }))
  
  # Combine significant DEGs and DATs from all pairs (handle empty data frames)
  combined_deg <- do.call(rbind, lapply(pairwise_results, function(x) {
    if(nrow(x$deg_sig) > 0) {
      x$deg_sig %>%
        dplyr::mutate(
          comparison_name = x$comparison_name,
          base_treatment = x$base_treatment,
          comparison_treatment = x$comparison_treatment
        )
    } else {
      data.frame()
    }
  }))
  
  combined_dat <- do.call(rbind, lapply(pairwise_results, function(x) {
    if(nrow(x$dat_sig) > 0) {
      x$dat_sig %>%
        dplyr::mutate(
          comparison_name = x$comparison_name,
          base_treatment = x$base_treatment,
          comparison_treatment = x$comparison_treatment
        )
    } else {
      data.frame()
    }
  }))
  
  # Get all unique samples used in any pairwise comparison
  all_samples <- unique(unlist(lapply(pairwise_results, function(x) x$samples)))
  
  # Print summary of results
  cat("\n=== PAIRWISE ANALYSIS SUMMARY ===\n")
  cat("Total comparisons completed:", length(pairwise_results), "\n")
  cat("Comparisons with significant correlations:", sum(sapply(pairwise_results, function(x) nrow(x$sig_correlations) > 0)), "\n")
  cat("Comparisons with significant partial correlations:", sum(sapply(pairwise_results, function(x) nrow(x$sig_partial_correlations) > 0)), "\n")
  cat("Total significant correlations:", nrow(combined_correlations), "\n")
  cat("Total significant partial correlations:", nrow(combined_sig_partial_correlations), "\n")
  
  return(list(
    question_name = question_name,
    base_treatment = base_treatment,
    comparison_treatments = comparison_treatments,
    pairwise_results = pairwise_results,
    combined_correlations = combined_correlations,
    combined_all_correlations = combined_all_correlations,
    combined_partial_correlations = combined_partial_correlations,
    combined_sig_partial_correlations = combined_sig_partial_correlations,
    combined_deg = combined_deg,
    combined_dat = combined_dat,
    all_samples = all_samples
  ))
}

Import Data

Phyloseq

ps.tmp <- readRDS("/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Data/Robjects/pseq_uncleaned_05052025.rds")

ps.cleaned <-
    ps.tmp %>%
        ## Update Metadata
        ps_rename(Time = Timepoint) %>%
        microViz::ps_mutate(
            Treatment = case_when(
                Antibiotics == 0 & Temperature == 0 & Pathogen == 0 ~ "A- T- P-",
                Antibiotics == 0 & Temperature == 0 & Pathogen == 1 ~ "A- T- P+",
                Antibiotics == 1 & Temperature == 0 & Pathogen == 0 ~ "A+ T- P-",
                Antibiotics == 1 & Temperature == 0 & Pathogen == 1 ~ "A+ T- P+",
                Antibiotics == 0 & Temperature == 1 & Pathogen == 0 ~ "A- T+ P-",
                Antibiotics == 0 & Temperature == 1 & Pathogen == 1 ~ "A- T+ P+",
                Antibiotics == 1 & Temperature == 1 & Pathogen == 0 ~ "A+ T+ P-",
                Antibiotics == 1 & Temperature == 1 & Pathogen == 1 ~ "A+ T+ P+",
                TRUE ~ "Unknown"
            ), .after = "Pathogen"
        ) %>%
        microViz::ps_mutate(Sample = fecal.sample.number, .before = 1) %>%
        microViz::ps_mutate(Sample = gsub("^f", "", Sample)) %>%
        microViz::ps_filter(Treatment != "Unknown") %>%
        microViz::ps_mutate(
            History = case_when(
                Antibiotics + Temperature == 0 ~ 0,
                Antibiotics + Temperature == 1 ~ 1,
                Antibiotics + Temperature == 2 ~ 2,
            ), .after = "Treatment"
        ) %>%
        
        ## Additional metadata updates, factorizing metadata
        microViz::ps_mutate(
        # Create treatment code
            treatment_code = case_when(
              Antibiotics == 0 & Temperature == 0 & Pathogen == 0 ~ "Aneg_Tneg_Pneg",
              Antibiotics == 0 & Temperature == 0 & Pathogen == 1 ~ "Aneg_Tneg_Ppos",
              Antibiotics == 1 & Temperature == 0 & Pathogen == 0 ~ "Apos_Tneg_Pneg",
              Antibiotics == 1 & Temperature == 0 & Pathogen == 1 ~ "Apos_Tneg_Ppos",
              Antibiotics == 0 & Temperature == 1 & Pathogen == 0 ~ "Aneg_Tpos_Pneg",
              Antibiotics == 0 & Temperature == 1 & Pathogen == 1 ~ "Aneg_Tpos_Ppos",
              Antibiotics == 1 & Temperature == 1 & Pathogen == 0 ~ "Apos_Tpos_Pneg",
              Antibiotics == 1 & Temperature == 1 & Pathogen == 1 ~ "Apos_Tpos_Ppos"
            ),
            # Create treatment group factor
            treatment_group = case_when(
              Antibiotics == 0 & Temperature == 0 & Pathogen == 1 ~ "Parasite",
              Antibiotics == 1 & Temperature == 0 & Pathogen == 0 ~ "Antibiotics",
              Antibiotics == 1 & Temperature == 0 & Pathogen == 1 ~ "Antibiotics_Parasite",
              Antibiotics == 0 & Temperature == 1 & Pathogen == 0 ~ "Temperature",
              Antibiotics == 0 & Temperature == 1 & Pathogen == 1 ~ "Temperature_Parasite",
              Antibiotics == 1 & Temperature == 1 & Pathogen == 0 ~ "Antibiotics_Temperature",
              Antibiotics == 1 & Temperature == 1 & Pathogen == 1 ~ "Antibiotics_Temperature_Parasite",
              TRUE ~ "Control"
            ),
            # Convert to factor with appropriate levels
            treatment_group = factor(treatment_group, 
                                   levels = c("Control", "Parasite", 
                                              "Antibiotics", "Antibiotics_Parasite",
                                              "Temperature", "Temperature_Parasite",
                                            "Antibiotics_Temperature", "Antibiotics_Temperature_Parasite")
                                   ),
            treatment_code = factor(treatment_code, levels = treatment_order),
            # Create time point factor
            time_point = factor(Time, levels = c(0, 14, 18, 25, 29, 60)),
            # Create pathogen status factor
            pathogen_status = factor(ifelse(Pathogen == 1, "Exposed", "Unexposed"),
                                   levels = c("Unexposed", "Exposed")),
            # Create sex factor
            sex = factor(Sex, levels = c("M", "F"))
            )  %>%
    microViz::ps_mutate(Treatment = factor(Treatment, levels = treatment_order)) %>%
      microViz::ps_mutate(Exp_Type = case_when(
          Treatment %in% c("A- T- P-", "A- T- P+")  ~ "No prior stressor(s)",
          Treatment %in% c("A+ T- P-", "A+ T- P+")  ~ "Antibiotics",
          Treatment %in% c("A- T+ P-", "A- T+ P+") ~ "Temperature",
          Treatment %in% c("A+ T+ P-", "A+ T+ P+") ~ "Combined",
      )) %>%
      microViz::ps_mutate(Exp_Type = factor(Exp_Type, levels = c("No prior stressor(s)", "Antibiotics", "Temperature", "Combined"))) %>%
  # Fix names for taxonomic ranks not identified
  microViz::tax_fix(suffix_rank = "current", anon_unique = T, unknown = NA) %>% 
  # Filter for any samples that contain more than 5000 reads
  microViz::ps_filter(sample_sums(.) > 5000) %>%
  # Any taxa not found in at least 3 samples are removed
  microViz::tax_filter(min_prevalence = 3, undetected = 0) %>%
  # Remove any unwanted reads
  microViz::tax_select(c("Mitochondria", "Chloroplast", "Eukaryota"), deselect = TRUE) %>%
  microViz::tax_select(c("Bacteria, Phylum"), deselect = TRUE) 

# Read and process OTU table for all treatments
taxa_counts.all <- ps.cleaned %>%
    microViz::tax_agg(rank = "Genus") %>%
    microViz::otu_get()

# Create taxa counts for different treatment comparisons
taxa_counts.parasite <- ps.cleaned %>%
    microViz::ps_filter(Treatment %in% c("A- T- P-", "A- T- P+")) %>%
    microViz::tax_agg(rank = "Genus") %>%
    microViz::otu_get()

taxa_counts.priorStressors <- ps.cleaned %>%
    microViz::ps_filter(Treatment %in% c("A- T- P+", "A+ T- P+", "A- T+ P+", "A+ T+ P+")) %>%
    microViz::tax_agg(rank = "Genus") %>%
    microViz::otu_get()

taxa_counts.noPriorStressors <- ps.cleaned %>%
    microViz::ps_filter(Treatment %in% c("A- T- P-", "A+ T- P-", "A- T+ P-", "A+ T+ P-")) %>%
    microViz::tax_agg(rank = "Genus") %>%
    microViz::otu_get()

DAT Results

# Question 0: All
dat_results.all <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffAbund/Results/All_60DPE__TREATMENT__significant_results.tsv') %>%
    dplyr::rename(taxa = feature)
## Rows: 610 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): feature, metadata, value
## dbl (6): coef, stderr, N, N.not.0, pval, qval
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Question 1: Parasite Exposure Response
dat_results.parasite <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffAbund/Results/ParasiteExp_60DPE__TREATMENT__significant_results.tsv') %>%
    dplyr::rename(taxa = feature)
## Rows: 76 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): feature, metadata, value
## dbl (6): coef, stderr, N, N.not.0, pval, qval
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Question 2: Historical Contingency of Parasite Response
dat_results.historical_contingency <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffAbund/Results/PriorStressParaExp_60DPE__TREATMENT__significant_results.tsv') %>%
    dplyr::rename(taxa = feature)
## Rows: 97 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): feature, metadata, value
## dbl (6): coef, stderr, N, N.not.0, pval, qval
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Question 3: Historical Contingency of Recovery
dat_results.recovery <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffAbund/Results/PriorStressNoParaExp_60DPE__TREATMENT__significant_results.tsv') %>%
    dplyr::rename(taxa = feature)
## Rows: 196 Columns: 9
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): feature, metadata, value
## dbl (6): coef, stderr, N, N.not.0, pval, qval
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

DEG Results

# Question 0: All

deg_results.all <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffExpGene/Results/All_Treatments__significant_results.tsv')
## Rows: 21638 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): gene, metadata, value
## dbl (5): log2FoldChange, padj, baseMean, pvalue, stat
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Question 1: Parasite Exposure Response
deg_results.parasite <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffExpGene/Results/Parasite_Effect__significant_results.tsv')
## Rows: 3753 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): gene, metadata, value
## dbl (5): log2FoldChange, padj, baseMean, pvalue, stat
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Question 2: Historical Contingency of Parasite Response
deg_results.historical_contingency <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffExpGene/Results/Historical_Contingency__significant_results.tsv')
## Rows: 204 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): gene, metadata, value
## dbl (5): log2FoldChange, padj, baseMean, pvalue, stat
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Question 3: Historical Contingency of Recovery
deg_results.recovery <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffExpGene/Results/Recovery_Analysis__significant_results.tsv')
## Rows: 199 Columns: 8
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr (3): gene, metadata, value
## dbl (5): log2FoldChange, padj, baseMean, pvalue, stat
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.

Expression Data

# Import raw expression data
expr_counts <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Data/Transcriptomics/Results/rnaseq/051525/salmon/salmon.merged.gene_counts_length_scale__Corrected_f136-f138.tsv') %>%
  # Clean up column names
  dplyr::rename_with(~gsub("TS047_RoL_RNA_", "", .), -c(gene_id, gene_name)) %>%
    dplyr::mutate(gene = gene_id, .before = 1) #%>%
## Rows: 39447 Columns: 74
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr  (2): gene_id, gene_name
## dbl (72): TS047_RoL_RNA_110, TS047_RoL_RNA_112, TS047_RoL_RNA_114, TS047_RoL...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
    # dplyr::rename(`136` = `138`)

# Get samples from raw expression data
expr_samples <- colnames(expr_counts)[-c(1:3)] # Exclude gene_id and gene_name columns

Metadata

# Import metadata to get treatment info
metadata <- read_tsv('/Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DiffExpGene/Results/sample_metadata.tsv') %>%
    dplyr::mutate(Treatment_long = Treatment) %>%
    dplyr::rename(Sample = sample) %>%
  dplyr::mutate(
    Treatment = stringr::str_c(
      dplyr::case_when(Antibiotics == 0 ~ "A-", Antibiotics == 1 ~ "A+"),
      dplyr::case_when(Temperature == 0 ~ " T-", Temperature == 1 ~ " T+"),
      dplyr::case_when(Pathogen == 0 ~ " P-", Pathogen == 1 ~ " P+")
    )
  ) %>%
    dplyr::relocate(Treatment, .after = Pathogen) %>%
    dplyr::arrange(desc(Treatment))
## Rows: 71 Columns: 12
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: "\t"
## chr  (2): Treatment, Treatment_Plot
## dbl (10): sample, Sample_Name, Time, Antibiotics, Temperature, Pathogen, His...
## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Print summary of available data
cat("\n=== DATA SUMMARY ===\n")
## 
## === DATA SUMMARY ===
# Create summary table
data_summary <- tibble::tibble(
  Metric = c("Total samples in expression data", "Total samples in metadata"),
  Count = c(length(expr_samples), nrow(metadata))
)

# Display summary table
data_summary %>%
  gt::gt() %>%
  gt::tab_header(
    title = "Data Summary",
    subtitle = "Overview of available samples"
  ) %>%
  gt::cols_label(
    Metric = "Data Type",
    Count = "Number of Samples"
  )
Data Summary
Overview of available samples
Data Type Number of Samples
Total samples in expression data 72
Total samples in metadata 71
# Create treatment distribution table
metadata %>%
  dplyr::count(Treatment) %>%
  dplyr::arrange(desc(n)) %>%
  gt::gt() %>%
  gt::tab_header(
    title = "Treatment Distribution",
    subtitle = "Number of samples per treatment group"
  ) %>%
  gt::cols_label(
    Treatment = "Treatment Group",
    n = "Number of Samples"
  )
Treatment Distribution
Number of samples per treatment group
Treatment Group Number of Samples
A+ T+ P+ 12
A+ T- P+ 12
A- T+ P+ 12
A- T- P+ 11
A+ T+ P- 6
A+ T- P- 6
A- T+ P- 6
A- T- P- 6

Integrated Analysis

Question 0: All

Analysis

## Attempting to load existing results for Question 0...
## Loading results from: /Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DEGxDAT/Results/results_all_20250630_200742.rds 
## Successfully loaded existing results for Question 0.
## 
## === QUESTION 0 SUMMARY ===
Question 2: Historical Contingency of Parasite Response
Summary of analysis results
Analysis Metric Result
Question Historical Contingency of Parasite Response
Base Treatment A- T- P-
Comparison Treatments A- T- P+, A+ T- P-, A+ T- P+, A- T+ P-, A- T+ P+, A+ T+ P-, A+ T+ P+
Total Samples 72
Number of Pairwise Comparisons 7
Pairwise Comparison Details
Results for each individual comparison
Comparison N Samples N Significant Genes N Significant Taxa N Significant Correlations
A- T- P- vs A- T- P+ 18 3753 84 20499
A- T- P- vs A+ T- P- 12 35 75 588
A- T- P- vs A+ T- P+ 18 6473 93 7888
A- T- P- vs A- T+ P- 12 47 73 3407
A- T- P- vs A- T+ P+ 18 6196 89 1969
A- T- P- vs A+ T+ P- 12 117 77 1656
A- T- P- vs A+ T+ P+ 18 5017 119 4563

Correlation Results

## 
## Top 10 strongest correlations across all pairwise comparisons:
gene_id gene_name TaxaID correlation abs_correlation p_value fdr comparison_name base_treatment comparison_treatment
LOC103909395 LOC103909395 Vogesella 1.000 1.000 0.00 0.00 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
LOC141376179 LOC141376179 Chitinimonas 1.000 1.000 0.00 0.00 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
LOC141376179 LOC141376179 Flavihumibacter 1.000 1.000 0.00 0.00 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
LOC141376179 LOC141376179 Hyphomicrobium 1.000 1.000 0.00 0.00 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
LOC141376179 LOC141376179 Mesorhizobium 1.000 1.000 0.00 0.00 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
zgc:171500 zgc:171500 Pseudoxanthomonas 1.000 1.000 0.00 0.00 A- T- P- vs A+ T- P+ A- T- P- A+ T- P+
zgc:171500 zgc:171500 SWB02 1.000 1.000 0.00 0.00 A- T- P- vs A+ T- P+ A- T- P- A+ T- P+
zgc:171500 zgc:171500 WY65 1.000 1.000 0.00 0.00 A- T- P- vs A+ T- P+ A- T- P- A+ T- P+
LOC137490512 LOC137490512 Mesorhizobium 1.000 1.000 0.00 0.00 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC141374967 LOC141374967 Afipia 1.000 1.000 0.00 0.00 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
## Warning: Removed 831498 rows containing non-finite outside the scale range
## (`stat_bin()`).

## 
## Correlation summary by comparison:
comparison_name n_correlations mean_correlation median_correlation n_significant
A- T- P- vs A+ T+ P+ 729756 −0.019 −0.026 4563
A- T- P- vs A+ T+ P- 729756 −0.054 −0.056 1656
A- T- P- vs A+ T- P+ 729756 −0.071 −0.096 7888
A- T- P- vs A+ T- P- 729756 −0.002 0.000 588
A- T- P- vs A- T+ P+ 729756 0.028 0.033 1969
A- T- P- vs A- T+ P- 729756 −0.096 −0.112 3407
A- T- P- vs A- T- P+ 729756 −0.084 −0.079 20499

Partial Correlation Results

## 
## === PARTIAL CORRELATION SUMMARY ===
Partial Correlation Analysis Summary
Question 0: All Treatments - Controlling for worm counts
Analysis Metric Count
Total partial correlations calculated 700
Significant partial correlations (FDR < 0.1) 554
Top 10 taxa by number of correlations 10
Partial correlations for top 10 taxa 293
## 
## Top 10 taxa by number of significant partial correlations:
Top 10 Taxa by Number of Significant Partial Correlations
Question 0: All Treatments
Taxa ID Number of Correlations Mean Absolute Correlation
Culicoidibacter 65 0.527
Tundrisphaera 46 0.576
Polymorphobacter 33 0.659
Rubrivivax 30 0.642
Bosea 21 0.735
Devosia 21 0.648
Gemmobacter 20 0.559
Ensifer 19 0.761
Legionella 19 0.581
Plesiomonas 19 0.350
## 
## Top 10 taxa by number of significant partial correlations:
Top 10 Taxa by Number of Significant Partial Correlations by Comparison
Question 0: All Treatments
Taxa ID comparison_name Number of Correlations Mean Absolute Correlation
Culicoidibacter A- T- P- vs A- T- P+ 47 0.488
Culicoidibacter A- T- P- vs A- T+ P+ 10 0.510
Culicoidibacter A- T- P- vs A+ T- P- 4 0.846
Culicoidibacter A- T- P- vs A+ T+ P- 2 0.705
Culicoidibacter A- T- P- vs A+ T- P+ 2 0.726
## 
## Top 10 strongest partial correlations (for top 10 taxa only):
Top 10 Significant Partial Correlations
Question 0: All Treatments - Top 10 taxa only
Gene ID Taxa ID Partial Correlation P-value FDR Absolute Correlation Comparison base_treatment comparison_treatment
LOC137490819 Culicoidibacter 0.916 4.90 × 10−2 7.08 × 10−2 0.916 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
gcdhb Ensifer 0.907 2.50 × 10−2 5.10 × 10−2 0.907 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
gcdhb Ensifer 0.897 5.19 × 10−2 5.71 × 10−2 0.897 A- T- P- vs A+ T+ P+ A- T- P- A+ T+ P+
arglu1a Bosea −0.883 9.99 × 10−4 1.76 × 10−2 0.883 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
prdx6 Bosea −0.870 2.00 × 10−3 1.05 × 10−2 0.870 A- T- P- vs A+ T- P+ A- T- P- A+ T- P+
gvin1l Polymorphobacter 0.869 9.99 × 10−4 3.84 × 10−3 0.869 A- T- P- vs A+ T+ P+ A- T- P- A+ T+ P+
abcc2 Culicoidibacter 0.858 2.00 × 10−2 4.76 × 10−2 0.858 A- T- P- vs A- T+ P+ A- T- P- A- T+ P+
med29 Bosea −0.857 4.00 × 10−3 6.89 × 10−3 0.857 A- T- P- vs A+ T+ P+ A- T- P- A+ T+ P+
fn3krp Ensifer 0.856 1.20 × 10−2 4.00 × 10−2 0.856 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
trpv4 Culicoidibacter 0.855 4.90 × 10−2 7.08 × 10−2 0.855 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
## 
## Top 10 strongest partial correlations (for top 10 taxa only):
Top 10 Significant Partial Correlations (Culicoidibacter)
Question 0: All Treatments - Top 10 features
Gene ID Taxa ID Partial Correlation P-value FDR Absolute Correlation Comparison base_treatment comparison_treatment
LOC137490819 Culicoidibacter 0.916 4.90 × 10−2 7.08 × 10−2 0.916 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
abcc2 Culicoidibacter 0.858 2.00 × 10−2 4.76 × 10−2 0.858 A- T- P- vs A- T+ P+ A- T- P- A- T+ P+
trpv4 Culicoidibacter 0.855 4.90 × 10−2 7.08 × 10−2 0.855 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
si:ch73-380l3.2 Culicoidibacter 0.850 5.09 × 10−2 7.08 × 10−2 0.850 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
dhrs1 Culicoidibacter 0.795 9.99 × 10−4 7.68 × 10−3 0.795 A- T- P- vs A+ T- P+ A- T- P- A+ T- P+
bdh1 Culicoidibacter 0.765 5.59 × 10−2 7.46 × 10−2 0.765 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
ano5a Culicoidibacter 0.765 2.70 × 10−2 5.50 × 10−2 0.765 A- T- P- vs A- T+ P+ A- T- P- A- T+ P+
mtus1b Culicoidibacter 0.759 3.10 × 10−2 5.16 × 10−2 0.759 A- T- P- vs A- T- P+ A- T- P- A- T- P+
ampd2a Culicoidibacter 0.748 3.90 × 10−2 6.71 × 10−2 0.748 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
si:dkey-286h2.3 Culicoidibacter 0.705 1.80 × 10−2 4.52 × 10−2 0.705 A- T- P- vs A- T- P+ A- T- P- A- T- P+

## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.

Heatmap

## Warning in matrix(top_correlations$correlation, nrow =
## length(unique(top_correlations$gene_id)), : data length [50] is not a
## sub-multiple or multiple of the number of rows [38]

Question 1: Parasite Exposure Response

Analysis

## Attempting to load existing results for Question 1...
## Loading results from: /Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DEGxDAT/Results/results_parasite_20250630_200828.rds 
## Successfully loaded existing results for Question 1.
## 
## === QUESTION 1 SUMMARY ===
Question 1: Parasite Exposure Response
Summary of analysis results
Analysis Metric Result
Question Parasite Exposure Response
Treatment Comparison A- T- P- vs A- T- P+
Number of Samples 18
Significant Genes 3753
Significant Taxa 30
Significant Correlations 11681

Correlation Results

## 
## Top 10 strongest correlations:
gene_id gene_name TaxaID correlation abs_correlation p_value fdr
hephl1b hephl1b Paucibacter −0.926 0.926 0.00 0.00
LOC100006250 LOC100006250 Gemmobacter −0.894 0.894 1.55 × 10−15 6.71 × 10−11
LOC101884777 LOC101884777 Vogesella 0.878 0.878 1.95 × 10−13 5.18 × 10−9
cdk10 cdk10 Culicoidibacter −0.878 0.878 2.40 × 10−13 5.18 × 10−9
nom1 nom1 Culicoidibacter −0.876 0.876 4.16 × 10−13 7.19 × 10−9
prpf31 prpf31 Plesiomonas −0.874 0.874 7.09 × 10−13 1.02 × 10−8
LOC100006250 LOC100006250 Paenirhodobacter −0.871 0.871 1.21 × 10−12 1.46 × 10−8
homezb homezb Plesiomonas −0.870 0.870 1.53 × 10−12 1.46 × 10−8
srpk1b srpk1b Culicoidibacter −0.870 0.870 1.53 × 10−12 1.46 × 10−8
cdk10 cdk10 Plesiomonas −0.863 0.863 7.99 × 10−12 6.89 × 10−8

Partial Correlation Results

results.parasite$sig_partial_correlations %>%
  dplyr::filter(fdr < 0.1) %>%
    gt::gt() %>%
  gt::fmt_number(
    columns = c(correlation, p_value, fdr, abs_correlation),
    decimals = 4
  )
gene_id taxa_id correlation p_value fdr abs_correlation
spsb1 Chitinilyticum 0.8373 0.0010 0.0333 0.8373
mtus1b Culicoidibacter 0.7594 0.0370 0.0528 0.7594
si:dkey-286h2.3 Culicoidibacter 0.7045 0.0090 0.0500 0.7045
znf692 Gemmobacter −0.6923 0.0290 0.0507 0.6923
rfc3 Paucibacter −0.6875 0.0040 0.0444 0.6875
bbc3 Culicoidibacter 0.6846 0.0160 0.0500 0.6846
gng10 Paucibacter −0.6839 0.0010 0.0333 0.6839
pdk2a Paucibacter 0.6745 0.0220 0.0500 0.6745
uqcc6 Paucibacter −0.6266 0.0040 0.0444 0.6266
slc25a44a Culicoidibacter −0.5864 0.0210 0.0500 0.5864
nrbp2b Culicoidibacter 0.5854 0.0699 0.0874 0.5854
sco2 Tundrisphaera −0.5594 0.0260 0.0500 0.5594
idh2 Culicoidibacter −0.5593 0.0140 0.0500 0.5593
mtrex Culicoidibacter −0.5557 0.0240 0.0500 0.5557
ing5b Culicoidibacter −0.5511 0.0210 0.0500 0.5511
prpf31 Culicoidibacter −0.5418 0.0150 0.0500 0.5418
gtdc1 Culicoidibacter −0.5403 0.0430 0.0581 0.5403
LOC100006250 Gemmobacter −0.5378 0.0060 0.0500 0.5378
aaas Culicoidibacter −0.5357 0.0390 0.0541 0.5357
uchl5 Culicoidibacter −0.5234 0.0260 0.0500 0.5234
hephl1b Paucibacter −0.5218 0.0040 0.0444 0.5218
uqcc6 Culicoidibacter −0.5206 0.0340 0.0507 0.5206
cdk10 Culicoidibacter −0.5191 0.0250 0.0500 0.5191
ncbp1 Culicoidibacter −0.5160 0.0230 0.0500 0.5160
recql4 Paucibacter −0.5148 0.0040 0.0444 0.5148
ciao1 Culicoidibacter −0.5084 0.0250 0.0500 0.5084
commd9 Culicoidibacter −0.5082 0.0130 0.0500 0.5082
zgc:77262 Culicoidibacter −0.5081 0.0320 0.0507 0.5081
srpk1b Culicoidibacter −0.5045 0.0200 0.0500 0.5045
rmi1 Culicoidibacter −0.5036 0.0470 0.0618 0.5036
haus6 Culicoidibacter −0.4997 0.0100 0.0500 0.4997
prps1b Culicoidibacter −0.4993 0.0330 0.0507 0.4993
psmc4 Culicoidibacter −0.4912 0.0280 0.0507 0.4912
nsfl1c Culicoidibacter −0.4905 0.0140 0.0500 0.4905
si:ch211-165i18.2 Paucibacter −0.4893 0.0010 0.0333 0.4893
tardbpb Culicoidibacter −0.4868 0.0170 0.0500 0.4868
rbm12bb Culicoidibacter −0.4792 0.0240 0.0500 0.4792
denr Culicoidibacter −0.4761 0.0360 0.0528 0.4761
dmap1 Culicoidibacter −0.4684 0.0200 0.0500 0.4684
psmd4a Culicoidibacter −0.4671 0.0130 0.0500 0.4671
pigf Culicoidibacter −0.4670 0.0330 0.0507 0.4670
psmd6 Culicoidibacter −0.4670 0.0140 0.0500 0.4670
fus Culicoidibacter −0.4665 0.0200 0.0500 0.4665
psmd1 Culicoidibacter −0.4656 0.0230 0.0500 0.4656
psmd2 Culicoidibacter −0.4632 0.0150 0.0500 0.4632
ssbp1 Culicoidibacter −0.4609 0.0559 0.0717 0.4609
igbp1 Culicoidibacter −0.4607 0.0110 0.0500 0.4607
gng10 Paenirhodobacter −0.4589 0.0020 0.0400 0.4589
ppp1r11 Culicoidibacter −0.4575 0.0180 0.0500 0.4575
tubb4b Culicoidibacter −0.4499 0.0280 0.0507 0.4499
lonp1 Culicoidibacter −0.4499 0.0140 0.0500 0.4499
gfpt1 Culicoidibacter −0.4486 0.0400 0.0547 0.4486
tuba8l4 Culicoidibacter −0.4482 0.0170 0.0500 0.4482
psmd3 Culicoidibacter −0.4411 0.0300 0.0507 0.4411
imp4 Culicoidibacter −0.4375 0.0260 0.0500 0.4375
pfkpa Culicoidibacter −0.4332 0.0390 0.0541 0.4332
ctbp1l Culicoidibacter −0.4319 0.0260 0.0500 0.4319
nom1 Culicoidibacter −0.4299 0.0210 0.0500 0.4299
h2ax Culicoidibacter −0.4279 0.0460 0.0613 0.4279
mmp25b Culicoidibacter −0.4273 0.0310 0.0507 0.4273
mcts1 Culicoidibacter −0.4271 0.0500 0.0649 0.4271
csf3r Culicoidibacter −0.4197 0.0180 0.0500 0.4197
zgc:85858 Culicoidibacter −0.4182 0.0330 0.0507 0.4182
h3f3a Culicoidibacter −0.4170 0.0060 0.0500 0.4170
mrpl33 Culicoidibacter −0.4102 0.0250 0.0500 0.4102
arf2b Culicoidibacter −0.4096 0.0300 0.0507 0.4096
tars1 Culicoidibacter −0.4086 0.0340 0.0507 0.4086
si:ch211-284o19.8 Culicoidibacter −0.4082 0.0370 0.0528 0.4082
LOC100006250 Paenirhodobacter −0.4073 0.0020 0.0400 0.4073
tubb2b Culicoidibacter −0.3988 0.0180 0.0500 0.3988
hephl1b Paenirhodobacter −0.3883 0.0150 0.0500 0.3883
anxa5b Culicoidibacter −0.3796 0.0130 0.0500 0.3796
armc7 Paenirhodobacter −0.3574 0.0080 0.0500 0.3574
agr2 Culicoidibacter −0.3543 0.0340 0.0507 0.3543
msraa Polymorphobacter −0.3441 0.0160 0.0500 0.3441
LOC101884777 Vogesella 0.3276 0.0619 0.0784 0.3276
p2rx4b Gemmobacter −0.3085 0.0310 0.0507 0.3085
zgc:172339 Gemmobacter −0.2649 0.0200 0.0500 0.2649
LOC137487483 Paenirhodobacter −0.2322 0.0210 0.0500 0.2322
pvalb7 Gemmobacter −0.2287 0.0290 0.0507 0.2287
# Count of significant partial correlations
results.parasite$sig_partial_correlations %>%
  dplyr::filter(fdr < 0.1) %>%
  dplyr::summarise(
    n_significant = n()
  ) %>%
  gt::gt() %>%
  gt::tab_header(
    title = "Number of Significant Partial Correlations",
    subtitle = "Parasite Exposure Response (FDR < 0.1)"
  ) %>%
  gt::cols_label(
    n_significant = "Number of Significant Correlations"
  )
Number of Significant Partial Correlations
Parasite Exposure Response (FDR < 0.1)
Number of Significant Correlations
80
# Count of significant partial correlations by direction
results.parasite$sig_partial_correlations %>%
  dplyr::filter(fdr < 0.1) %>%
  dplyr::mutate(
    direction = dplyr::case_when(
      correlation > 0 ~ "Positive",
      correlation < 0 ~ "Negative",
      TRUE ~ "Zero"
    )
  ) %>%
  dplyr::group_by(direction) %>%
  dplyr::summarise(
    n_correlations = n(),
    .groups = "drop"
  ) %>%
  gt::gt() %>%
  gt::tab_header(
    title = "Significant Partial Correlations by Direction",
    subtitle = "Parasite Exposure Response (FDR < 0.1)"
  ) %>%
  gt::cols_label(
    direction = "Correlation Direction",
    n_correlations = "Number of Correlations"
  )
Significant Partial Correlations by Direction
Parasite Exposure Response (FDR < 0.1)
Correlation Direction Number of Correlations
Negative 73
Positive 7
## 
## === PARTIAL CORRELATION SUMMARY ===
## 
## Top 10 strongest partial correlations:

Heatmap

## Warning in matrix(top_correlations$correlation, nrow =
## length(unique(top_correlations$gene_id)), : data length [100] is not a
## sub-multiple or multiple of the number of rows [87]

Question 2: Historical Contingency of Parasite Response

Analysis

## Attempting to load existing results for Question 2...
## Loading results from: /Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DEGxDAT/Results/results_historical_contingency_20250630_200918.rds 
## Successfully loaded existing results for Question 2.
## 
## === QUESTION 2 SUMMARY ===
Question 2: Historical Contingency of Parasite Response
Summary of analysis results
Analysis Metric Result
Question Historical Contingency of Parasite Response
Base Treatment A- T- P+
Comparison Treatments A+ T- P+, A- T+ P+, A+ T+ P+
Total Samples 48
Number of Pairwise Comparisons 3
Pairwise Comparison Details
Results for each individual comparison
Comparison N Samples N Significant Genes N Significant Taxa N Significant Correlations
A- T- P+ vs A+ T- P+ 24 49 48 1
A- T- P+ vs A- T+ P+ 24 137 16 3
A- T- P+ vs A+ T+ P+ 24 18 33 0

Correlation Results

## 
## Top 10 strongest correlations across all pairwise comparisons:
gene_id gene_name TaxaID correlation abs_correlation p_value fdr comparison_name base_treatment comparison_treatment
zmp:0000000629 zmp:0000000629 Polymorphobacter −0.716 0.716 1.54 × 10−6 5.33 × 10−3 A- T- P+ vs A- T+ P+ A- T- P+ A- T+ P+
zmp:0000000629 zmp:0000000629 Chryseotalea −0.683 0.683 1.16 × 10−5 1.37 × 10−2 A- T- P+ vs A- T+ P+ A- T- P+ A- T+ P+
lsm14b lsm14b Polymorphobacter −0.683 0.683 1.19 × 10−5 1.37 × 10−2 A- T- P+ vs A- T+ P+ A- T- P+ A- T+ P+
zranb2 zranb2 Uliginosibacterium 0.682 0.682 1.22 × 10−5 4.39 × 10−2 A- T- P+ vs A+ T- P+ A- T- P+ A+ T- P+
## Warning: Removed 994 rows containing non-finite outside the scale range
## (`stat_bin()`).

## 
## Correlation summary by comparison:
comparison_name n_correlations mean_correlation median_correlation n_significant
A- T- P+ vs A+ T+ P+ 4004 −0.059 −0.069 0
A- T- P+ vs A+ T- P+ 4004 −0.071 −0.080 1
A- T- P+ vs A- T+ P+ 4004 −0.033 −0.038 3

Partial Correlation Results

results.historical_contingency[["combined_sig_partial_correlations"]] %>%
  dplyr::filter(fdr < 0.1) %>%
    gt::gt() %>%
  gt::fmt_number(
    columns = c(correlation, p_value, fdr, abs_correlation),
    decimals = 4
  )
gene_id taxa_id correlation p_value fdr abs_correlation comparison_name base_treatment comparison_treatment
zranb2 Uliginosibacterium 0.6274 0.0240 0.0240 0.6274 A- T- P+ vs A+ T- P+ A- T- P+ A+ T- P+
lsm14b Polymorphobacter −0.3765 0.0100 0.0300 0.3765 A- T- P+ vs A- T+ P+ A- T- P+ A- T+ P+
# Count of significant partial correlations
results.historical_contingency[["combined_sig_partial_correlations"]] %>%
  dplyr::filter(fdr < 0.1) %>%
    dplyr::group_by(comparison_name) %>%
  dplyr::summarise(
    n_significant = n()
  ) %>%
  gt::gt() %>%
  gt::tab_header(
    title = "Number of Significant Partial Correlations",
    subtitle = "Historical Contingency of Parasite Response (FDR < 0.1)"
  ) %>%
  gt::cols_label(
    n_significant = "Number of Significant Correlations"
  )
Number of Significant Partial Correlations
Historical Contingency of Parasite Response (FDR < 0.1)
comparison_name Number of Significant Correlations
A- T- P+ vs A+ T- P+ 1
A- T- P+ vs A- T+ P+ 1
# Count of significant partial correlations by direction
results.historical_contingency[["combined_sig_partial_correlations"]] %>%
  dplyr::filter(fdr < 0.1) %>%
  dplyr::mutate(
    direction = dplyr::case_when(
      correlation > 0 ~ "Positive",
      correlation < 0 ~ "Negative",
      TRUE ~ "Zero"
    )
  ) %>%
  dplyr::group_by(comparison_name, direction) %>%
  dplyr::summarise(
    n_correlations = n()#,
    # .groups = "drop"
  ) %>%
  gt::gt() %>%
  gt::tab_header(
    title = "Significant Partial Correlations by Direction",
    subtitle = "Historical Contingency of Parasite Response (FDR < 0.1)"
  ) %>%
  gt::cols_label(
    direction = "Correlation Direction",
    n_correlations = "Number of Correlations"
  )
## `summarise()` has grouped output by 'comparison_name'. You can override using
## the `.groups` argument.
Significant Partial Correlations by Direction
Historical Contingency of Parasite Response (FDR < 0.1)
Correlation Direction Number of Correlations
A- T- P+ vs A+ T- P+
Positive 1
A- T- P+ vs A- T+ P+
Negative 1
## 
## === PARTIAL CORRELATION SUMMARY ===
## 
## Top 10 strongest partial correlations:

Heatmap

## Warning in matrix(top_correlations$correlation, nrow =
## length(unique(top_correlations$gene_id)), : data length [4] is not a
## sub-multiple or multiple of the number of rows [3]

Question 3: Historical Contingency of Recovery

Analysis

## Attempting to load existing results for Question 3...
## Loading results from: /Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DEGxDAT/Results/results_recovery_20250630_201002.rds 
## Successfully loaded existing results for Question 3.
## 
## === QUESTION 3 SUMMARY ===
Question 3: Historical Contingency of Recovery
Summary of analysis results
Analysis Metric Result
Question Historical Contingency of Recovery
Base Treatment A- T- P-
Comparison Treatments A+ T- P-, A- T+ P-, A+ T+ P-
Total Samples 24
Number of Pairwise Comparisons 3
Pairwise Comparison Details
Results for each individual comparison
Comparison N Samples N Significant Genes N Significant Taxa N Significant Correlations
A- T- P- vs A+ T- P- 12 35 59 16
A- T- P- vs A- T+ P- 12 47 65 45
A- T- P- vs A+ T+ P- 12 117 72 83

Correlation Results

## 
## Top 10 strongest correlations across all pairwise comparisons:
gene_id gene_name TaxaID correlation abs_correlation p_value fdr comparison_name base_treatment comparison_treatment
LOC795984 LOC795984 Luteolibacter 1.000 1.000 0.00 0.00 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC795984 LOC795984 Piscinibacter 1.000 1.000 0.00 0.00 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
blnk blnk Reyranella −0.940 0.940 0.00 0.00 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
pmaip1 pmaip1 Elstera −0.921 0.921 7.99 × 10−14 1.78 × 10−10 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
elmo2 elmo2 Aquihabitans −0.892 0.892 4.48 × 10−10 7.50 × 10−7 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC101885452 LOC101885452 Dinghuibacter 0.889 0.889 8.39 × 10−10 5.77 × 10−6 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
LOC137496053 LOC137496053 Gemmobacter −0.887 0.887 1.16 × 10−9 3.49 × 10−6 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC141375138 LOC141375138 Runella 0.886 0.886 1.48 × 10−9 3.49 × 10−6 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
zmp:0000000527 zmp:0000000527 Reyranella −0.883 0.883 2.85 × 10−9 5.04 × 10−6 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC137487668 LOC137487668 Aquihabitans 0.871 0.871 1.93 × 10−8 2.59 × 10−5 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
## Warning: Removed 558 rows containing non-finite outside the scale range
## (`stat_bin()`).

## 
## Correlation summary by comparison:
comparison_name n_correlations mean_correlation median_correlation n_significant
A- T- P- vs A+ T+ P- 7068 −0.009 −0.007 83
A- T- P- vs A+ T- P- 7068 0.030 0.021 16
A- T- P- vs A- T+ P- 7068 −0.074 −0.092 45

Partial Correlation Results

# Display all significant partial correlations
results.recovery[["combined_sig_partial_correlations"]] %>%
  dplyr::filter(fdr < 0.1) %>%
  gt::gt() %>%
  gt::fmt_number(
    columns = c(correlation, p_value, fdr, abs_correlation),
    decimals = 4
  )
gene_id taxa_id correlation p_value fdr abs_correlation comparison_name base_treatment comparison_treatment
adam12b Flavobacterium 0.4367 0.0040 0.0320 0.4367 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
pla2g3 Flavobacterium 0.4298 0.0040 0.0320 0.4298 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
LOC141379342 Aquihabitans 0.2077 0.0170 0.0906 0.2077 A- T- P- vs A+ T- P- A- T- P- A+ T- P-
LOC795984 Luteolibacter 1.0000 0.0010 0.0169 1.0000 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC795984 Piscinibacter 1.0000 0.0030 0.0169 1.0000 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC137489722 Pseudoxanthomonas 0.9788 0.0400 0.0620 0.9788 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC141379342 Pseudoxanthomonas 0.9769 0.0270 0.0593 0.9769 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC141379345 Pseudoxanthomonas 0.9545 0.0080 0.0327 0.9545 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
lhx8a Rhodococcus 0.9070 0.0360 0.0620 0.9070 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC101882847 Pseudoxanthomonas 0.9014 0.0020 0.0169 0.9014 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC141379353 Pseudoxanthomonas 0.8066 0.0030 0.0169 0.8066 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
maml3 Bosea −0.7730 0.0110 0.0380 0.7730 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
pmaip1 Crenobacter 0.7504 0.0509 0.0674 0.7504 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC137487211 Flavobacterium −0.7311 0.0390 0.0620 0.7311 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
maml3 Pirellula −0.7069 0.0020 0.0169 0.7069 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
mcfd2 Bosea 0.6966 0.0130 0.0417 0.6966 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC110439307 Pseudoxanthomonas −0.6611 0.0819 0.0970 0.6611 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC560278 Sphaerotilus −0.6609 0.0260 0.0593 0.6609 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
znf1069 Caulobacter 0.6585 0.0180 0.0539 0.6585 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
spire1a Pirellula −0.6172 0.0030 0.0169 0.6172 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC141379337 Pseudoxanthomonas 0.6016 0.0030 0.0169 0.6016 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
ftr34 Sphaerotilus −0.5770 0.0490 0.0668 0.5770 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
maml3 Reyranella −0.5753 0.0010 0.0169 0.5753 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
pmaip1 Pseudoxanthomonas −0.5609 0.0290 0.0593 0.5609 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
pmaip1 Agitococcus −0.5603 0.0380 0.0620 0.5603 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC101882702 Roseomonas −0.5545 0.0579 0.0737 0.5545 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
si:ch211-217k17.11 Runella −0.5458 0.0260 0.0593 0.5458 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC110438438 Pseudoxanthomonas 0.5388 0.0040 0.0200 0.5388 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
si:ch211-217k17.11 Sphaerotilus −0.5309 0.0330 0.0611 0.5309 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC100001589 Runella −0.5034 0.0080 0.0327 0.5034 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
dhx58 Reyranella −0.5010 0.0110 0.0380 0.5010 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
dhx58 Runella −0.4941 0.0220 0.0582 0.4941 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
pmaip1 Bdellovibrio −0.4541 0.0420 0.0629 0.4541 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
si:ch211-15j1.4 Reyranella −0.4488 0.0290 0.0593 0.4488 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
si:ch211-15j1.4 Runella −0.4367 0.0310 0.0606 0.4367 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC101883008 Culicoidibacter −0.4241 0.0470 0.0668 0.4241 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
pmaip1 Elstera −0.3968 0.0480 0.0668 0.3968 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
LOC137487211 Culicoidibacter −0.3781 0.0589 0.0737 0.3781 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
elmo2 Aquihabitans −0.3665 0.0340 0.0611 0.3665 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
si:ch211-15j1.4 Agitococcus −0.3400 0.0709 0.0863 0.3400 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
slco1c1 Aquihabitans 0.2119 0.0210 0.0582 0.2119 A- T- P- vs A- T+ P- A- T- P- A- T+ P-
rergla Pseudorhodoplanes 0.9493 0.0500 0.0846 0.9493 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
znf1069 Legionella 0.8945 0.0390 0.0703 0.8945 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC141375138 Runella 0.8897 0.0060 0.0415 0.8897 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
prag1 Pirellula −0.8807 0.0170 0.0522 0.8807 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
zmp:0000000527 Pirellula −0.8723 0.0070 0.0434 0.8723 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
cxcl14 Bosea −0.8514 0.0060 0.0415 0.8514 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
spire1a Pirellula −0.8270 0.0060 0.0415 0.8270 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
blnk Pirellula −0.7939 0.0100 0.0434 0.7939 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC100537840 Pirellula −0.7683 0.0050 0.0415 0.7683 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
tnfa Pirellula −0.7665 0.0090 0.0434 0.7665 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
faah Pirellula −0.7363 0.0160 0.0510 0.7363 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
ly6m5 Flavobacterium 0.7361 0.0160 0.0510 0.7361 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
vps33a Bosea −0.7246 0.0040 0.0415 0.7246 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
rnf213a Pirellula −0.7227 0.0020 0.0415 0.7227 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
irf3 Flavobacterium 0.7109 0.0330 0.0684 0.7109 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC101883092 Pirellula −0.7093 0.0250 0.0576 0.7093 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC103910189 Pirellula −0.6807 0.0240 0.0576 0.6807 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
sash1b Pirellula −0.6599 0.0240 0.0576 0.6599 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
vim Bosea −0.6590 0.0110 0.0434 0.6590 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
pstpip1b Pirellula −0.6541 0.0230 0.0576 0.6541 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
hspa8 Gemmobacter −0.6432 0.0430 0.0743 0.6432 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
tmem106a Bosea −0.6313 0.0030 0.0415 0.6313 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC141385619 Culicoidibacter 0.6274 0.0080 0.0434 0.6274 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
zgc:56106 Runella −0.5926 0.0010 0.0415 0.5926 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC137496184 Flavobacterium −0.5884 0.0120 0.0452 0.5884 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
cxcl14 Flavobacterium −0.5850 0.0160 0.0510 0.5850 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
si:ch1073-406l10.2 Neochlamydia 0.5778 0.0030 0.0415 0.5778 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
si:ch1073-406l10.2 Gemmobacter −0.5757 0.0330 0.0684 0.5757 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
prr5a Flavobacterium −0.5724 0.0380 0.0703 0.5724 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC560278 Luteolibacter −0.5508 0.0210 0.0576 0.5508 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC141378197 Runella −0.5370 0.0370 0.0703 0.5370 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC795984 Pirellula 0.5311 0.0300 0.0672 0.5311 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC137496184 Bosea −0.5222 0.0040 0.0415 0.5222 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC101883092 Runella −0.5080 0.0220 0.0576 0.5080 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC793010 Dongia −0.5044 0.0360 0.0703 0.5044 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC137496184 Gemmobacter −0.4932 0.0060 0.0415 0.4932 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC100537840 Runella −0.4756 0.0559 0.0892 0.4756 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC103910189 Runella −0.4714 0.0250 0.0576 0.4714 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC137496053 Gemmobacter −0.4630 0.0110 0.0434 0.4630 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
si:ch211-125e6.14 Tundrisphaera −0.4618 0.0320 0.0684 0.4618 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
prr5a Bosea −0.4563 0.0190 0.0563 0.4563 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
igf2bp2b Runella −0.4547 0.0210 0.0576 0.4547 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
ugt5g1 Bosea −0.4413 0.0110 0.0434 0.4413 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
ugt5g1 Flavobacterium −0.3948 0.0410 0.0723 0.3948 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC101882702 Neochlamydia −0.3904 0.0639 0.0962 0.3904 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC108183350 Luteolibacter −0.3691 0.0350 0.0703 0.3691 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
blnk Reyranella −0.3672 0.0390 0.0703 0.3672 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
ugt5g1 Neochlamydia 0.3628 0.0030 0.0415 0.3628 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC100537840 Reyranella −0.3400 0.0569 0.0892 0.3400 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
zgc:171506 Crenobacter 0.3351 0.0090 0.0434 0.3351 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
zmp:0000000527 Reyranella −0.3274 0.0130 0.0469 0.3274 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
rnf213a Reyranella −0.3250 0.0649 0.0962 0.3250 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
pld4 Reyranella −0.2990 0.0529 0.0879 0.2990 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
prag1 Reyranella −0.2889 0.0080 0.0434 0.2889 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
LOC141375335 Reyranella −0.2362 0.0549 0.0892 0.2362 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
igf2bp2b Reyranella −0.2110 0.0589 0.0906 0.2110 A- T- P- vs A+ T+ P- A- T- P- A+ T+ P-
# Count of significant partial correlations
results.recovery[["combined_sig_partial_correlations"]] %>%
  dplyr::filter(fdr < 0.1) %>%
    dplyr::group_by(comparison_name) %>%
  dplyr::summarise(
    n_significant = n()
  ) %>%
  gt::gt() %>%
  gt::tab_header(
    title = "Number of Significant Partial Correlations",
    subtitle = "Historical Contingency of Recovery (FDR < 0.1)"
  ) %>%
  gt::cols_label(
    n_significant = "Number of Significant Correlations"
  )
Number of Significant Partial Correlations
Historical Contingency of Recovery (FDR < 0.1)
comparison_name Number of Significant Correlations
A- T- P- vs A+ T+ P- 56
A- T- P- vs A+ T- P- 3
A- T- P- vs A- T+ P- 38
# Count of significant partial correlations by direction
results.recovery[["combined_sig_partial_correlations"]] %>%
  dplyr::filter(fdr < 0.1) %>%
  dplyr::mutate(
    direction = dplyr::case_when(
      correlation > 0 ~ "Positive",
      correlation < 0 ~ "Negative",
      TRUE ~ "Zero"
    )
  ) %>%
  dplyr::group_by(comparison_name,direction) %>%
  dplyr::summarise(
    n_correlations = n()#,
    # .groups = "drop"
  ) %>%
  gt::gt() %>%
  gt::tab_header(
    title = "Significant Partial Correlations by Direction",
    subtitle = "Historical Contingency of Recovery (FDR < 0.1)"
  ) %>%
  gt::cols_label(
    direction = "Correlation Direction",
    n_correlations = "Number of Correlations"
  )
## `summarise()` has grouped output by 'comparison_name'. You can override using
## the `.groups` argument.
Significant Partial Correlations by Direction
Historical Contingency of Recovery (FDR < 0.1)
Correlation Direction Number of Correlations
A- T- P- vs A+ T+ P-
Negative 46
Positive 10
A- T- P- vs A+ T- P-
Positive 3
A- T- P- vs A- T+ P-
Negative 24
Positive 14
## 
## === PARTIAL CORRELATION SUMMARY ===
## 
## Top 10 strongest partial correlations:

Heatmap

## [1] 50
## Warning in matrix(top_correlations$correlation, nrow =
## length(unique(top_correlations$gene_id)), : data length [144] is not a
## sub-multiple or multiple of the number of rows [78]

Comparative Analysis

Summary Statistics Across Questions

Summary Comparison Across Research Questions
Integrated DEGxDAT Analysis Results
Research Question Treatment Comparison N Samples N_Pairwise_Comparisons N Significant Genes N Significant Taxa N Significant Correlations N Significant Partial Correlations Mean Correlation Median Correlation
Parasite Exposure Response A- T- P- vs A- T- P+ 18 1 3753 30 11681 80 −0.100 −0.088
Historical Contingency of Parasite Response A- T- P+ vs (A+ T- P+, A- T+ P+, A+ T+ P+) 48 3 612 123 4 2 −0.055 −0.063
Historical Contingency of Recovery A- T- P- vs (A+ T- P-, A- T+ P-, A+ T+ P-) 24 3 597 219 144 97 −0.017 −0.022

Overlap Analysis

## 
## === GENE OVERLAP STATISTICS ===
Gene Overlap Statistics
Distribution of significant genes across research questions
Overlap Category Number of Genes
Total unique genes across all questions 3948
Genes in Parasite Response only 3582
Genes in Historical Contingency only 87
Genes in Recovery only 108
Genes in Parasite Response and Historical Contingency 95
Genes in Parasite Response and Recovery 78
Genes in Historical Contingency and Recovery 2
Genes in all three 2
## 
## === TAXA OVERLAP STATISTICS ===
Taxa Overlap Statistics
Distribution of significant taxa across research questions
Overlap Category Number of Taxa
Total unique taxa across all questions 95
Taxa in Parasite Response only 12
Taxa in Historical Contingency only 19
Taxa in Recovery only 37
Taxa in Parasite Response and Historical Contingency 9
Taxa in Parasite Response and Recovery 15
Taxa in Historical Contingency and Recovery 15
Taxa in all three 6

Enrichment Analysis

Question 0: All Treatments

## 'select()' returned 1:many mapping between keys and columns
## Warning in dplyr::left_join(., entrez_map, by = "gene_id"): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 2 of `x` matches multiple rows in `y`.
## ℹ Row 7 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
##   "many-to-many"` to silence this warning.
## 
## Processing contrast with 467 genes
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 
## === GO ENRICHMENT - ALL TREATMENTS ===
Top 10 Enriched GO Terms
All Treatments
GO ID GO Term Description Adjusted P-value Mean Correlation N Positive N Negative
GO:0006997 nucleus organization 8.21 × 10−3 −0.191 2 5
GO:0019941 modification-dependent protein catabolic process 1.37 × 10−2 0.046 11 11
GO:0043632 modification-dependent macromolecule catabolic process 1.37 × 10−2 0.046 11 11
GO:0006511 ubiquitin-dependent protein catabolic process 1.71 × 10−2 0.069 11 10
GO:0006998 nuclear envelope organization 9.69 × 10−2 −0.239 1 3

Question 1: Parasite Exposure Response

## 'select()' returned 1:many mapping between keys and columns
## Warning in dplyr::left_join(., entrez_map, by = "gene_id"): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 1 of `x` matches multiple rows in `y`.
## ℹ Row 2 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
##   "many-to-many"` to silence this warning.
## 
## Processing contrast with 2272 genes
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 
## === GO ENRICHMENT - PARASITE EXPOSURE RESPONSE ===
Top 10 Enriched GO Terms
Parasite Exposure Response
GO ID GO Term Description Adjusted P-value Mean Correlation N Positive N Negative
GO:0006260 DNA replication 1.46 × 10−42 −0.719 1 82
GO:0007059 chromosome segregation 7.90 × 10−38 −0.717 1 88
GO:0006974 DNA damage response 6.83 × 10−35 −0.563 16 124
GO:1903047 mitotic cell cycle process 3.76 × 10−33 −0.644 7 107
GO:0006281 DNA repair 6.48 × 10−32 −0.601 10 105
GO:0051276 chromosome organization 8.58 × 10−32 −0.700 2 95
GO:0006261 DNA-templated DNA replication 3.17 × 10−31 −0.741 0 55
GO:0098813 nuclear chromosome segregation 2.08 × 10−27 −0.734 0 59
GO:0000819 sister chromatid segregation 2.66 × 10−27 −0.733 0 50
GO:0048285 organelle fission 4.52 × 10−27 −0.658 4 74

Question 2: Historical Contingency of Parasite Response

## 'select()' returned 1:1 mapping between keys and columns
## Warning in dplyr::left_join(., entrez_map, by = "gene_id"): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 2 of `x` matches multiple rows in `y`.
## ℹ Row 2 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
##   "many-to-many"` to silence this warning.
## 
## Processing contrast with 3 genes
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 
## === GO ENRICHMENT - HISTORICAL CONTINGENCY OF PARASITE RESPONSE ===
Top 10 Enriched GO Terms
Historical Contingency of Parasite Response
GO ID GO Term Description Adjusted P-value Mean Correlation N Positive N Negative
GO:0006952 defense response 5.18 × 10−2 0.682 1 0
GO:0009607 response to biotic stimulus 5.18 × 10−2 0.682 1 0
GO:0009617 response to bacterium 5.18 × 10−2 0.682 1 0
GO:0042742 defense response to bacterium 5.18 × 10−2 0.682 1 0
GO:0043207 response to external biotic stimulus 5.18 × 10−2 0.682 1 0
GO:0051707 response to other organism 5.18 × 10−2 0.682 1 0
GO:0098542 defense response to other organism 5.18 × 10−2 0.682 1 0

Question 3: Historical Contingency of Recovery

## 'select()' returned 1:1 mapping between keys and columns
## Warning in dplyr::left_join(., entrez_map, by = "gene_id"): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 1 of `x` matches multiple rows in `y`.
## ℹ Row 1 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
##   "many-to-many"` to silence this warning.
## 
## Processing contrast with 60 genes
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## 
## === GO ENRICHMENT - HISTORICAL CONTINGENCY OF RECOVERY ===
Top 10 Enriched GO Terms
Historical Contingency of Recovery
GO ID GO Term Description Adjusted P-value Mean Correlation N Positive N Negative
GO:0006952 defense response 3.02 × 10−2 −0.527 1 5
GO:0045109 intermediate filament organization 8.60 × 10−2 0.043 1 1

Comprehensive Enrichment Analysis and Results Export

Setup and Functions

# Function to create comprehensive enrichment tables for significant correlations
create_comprehensive_enrichment_tables <- function(results_list, analysis_name) {
  # This function creates comprehensive tables of significant gene-taxa correlations
  # with GO and KEGG annotations for a given analysis
  
  cat("\n=== Creating comprehensive enrichment tables for:", analysis_name, "===\n")
  
  # Get significant partial correlations
  if ("sig_partial_correlations" %in% names(results_list)) {
    sig_correlations <- results_list$sig_partial_correlations
  } else if ("combined_sig_partial_correlations" %in% names(results_list)) {
    sig_correlations <- results_list$combined_sig_partial_correlations
  } else {
    cat("No significant partial correlations found for", analysis_name, "\n")
    return(NULL)
  }
  
  if (nrow(sig_correlations) == 0) {
    cat("No significant partial correlations found for", analysis_name, "\n")
    return(NULL)
  }
  
  # Get unique genes from significant correlations
  unique_genes <- unique(sig_correlations$gene_id)
  cat("Number of unique genes:", length(unique_genes), "\n")
  
  # Map genes to Entrez IDs and get annotations
  # First, get Entrez IDs
  entrez_ids <- AnnotationDbi::mapIds(
    org.Dr.eg.db,
    keys = unique_genes,
    column = "ENTREZID",
    keytype = "SYMBOL",
    multiVals = "first"
  )
  
  # Then, get gene names
  gene_names <- AnnotationDbi::mapIds(
    org.Dr.eg.db,
    keys = unique_genes,
    column = "GENENAME",
    keytype = "SYMBOL",
    multiVals = "first"
  )
  
  # Create annotation dataframe
  gene_annotations <- tibble::tibble(
    gene_id = unique_genes,
    entrez_id = as.character(entrez_ids),
    gene_name = gene_names,
    symbol = unique_genes  # Since we're using SYMBOL as keytype, symbol is the same as gene_id
  ) %>%
    dplyr::filter(!is.na(entrez_id))
  
  # Perform GO enrichment for these genes
  if (nrow(gene_annotations) > 0) {
    go_enrichment <- enrichGO(
      gene = gene_annotations$entrez_id,
      OrgDb = org.Dr.eg.db,
      keyType = "ENTREZID",
      ont = "BP",
      pAdjustMethod = "BH",
      pvalueCutoff = 0.1,
      qvalueCutoff = 0.2,
      readable = TRUE
    )
    
    if (!is.null(go_enrichment) && nrow(go_enrichment) > 0) {
      go_results <- as.data.frame(go_enrichment) %>%
        dplyr::select(ID, Description, p.adjust, Count, geneID) %>%
        dplyr::mutate(log_padj = -log10(p.adjust))
    } else {
      go_results <- data.frame()
    }
    
    # Perform KEGG enrichment for these genes
    kegg_enrichment <- enrichKEGG(
      gene = gene_annotations$entrez_id,
      organism = 'dre',
      keyType = 'ncbi-geneid',
      pAdjustMethod = "BH",
      pvalueCutoff = 0.1,
      qvalueCutoff = 0.2
    )
    
    if (!is.null(kegg_enrichment) && nrow(kegg_enrichment) > 0) {
      kegg_results <- as.data.frame(kegg_enrichment) %>%
        dplyr::select(ID, Description, p.adjust, Count, geneID) %>%
        dplyr::mutate(log_padj = -log10(p.adjust))
    } else {
      kegg_results <- data.frame()
    }
  } else {
    go_results <- data.frame()
    kegg_results <- data.frame()
  }
  
  # Create comprehensive correlation table with annotations
  comprehensive_table <- sig_correlations %>%
    dplyr::left_join(gene_annotations, by = "gene_id") %>%
    dplyr::mutate(
      gene_description = ifelse(!is.na(gene_name), gene_name, gene_id),
      analysis = analysis_name
    ) %>%
    dplyr::select(
      analysis, gene_id, gene_description, taxa_id, correlation, 
      p_value, fdr, abs_correlation, entrez_id
    ) %>%
    dplyr::arrange(desc(abs_correlation))
  
  # Add GO term annotations to the comprehensive table
  if (nrow(go_results) > 0) {
    go_gene_mapping <- go_results %>%
      tidyr::separate_rows(geneID, sep = "/") %>%
      dplyr::select(ID, Description, geneID) %>%
      dplyr::rename(go_id = ID, go_description = Description, gene_symbol = geneID)
    
    comprehensive_table <- comprehensive_table %>%
      dplyr::left_join(go_gene_mapping, by = c("gene_id" = "gene_symbol")) %>%
      dplyr::group_by(analysis, gene_id, gene_description, taxa_id, correlation, 
                      p_value, fdr, abs_correlation, entrez_id) %>%
      dplyr::summarise(
        go_terms = paste(unique(go_description), collapse = "; "),
        .groups = "drop"
      )
  } else {
    comprehensive_table <- comprehensive_table %>%
      dplyr::mutate(go_terms = NA_character_)
  }
  
  # Add KEGG pathway annotations to the comprehensive table
  if (nrow(kegg_results) > 0) {
    kegg_gene_mapping <- kegg_results %>%
      tidyr::separate_rows(geneID, sep = "/") %>%
      dplyr::select(ID, Description, geneID) %>%
      dplyr::rename(kegg_id = ID, kegg_description = Description, gene_symbol = geneID)
    
    comprehensive_table <- comprehensive_table %>%
      dplyr::left_join(kegg_gene_mapping, by = c("gene_id" = "gene_symbol")) %>%
      dplyr::group_by(analysis, gene_id, gene_description, taxa_id, correlation, 
                      p_value, fdr, abs_correlation, entrez_id, go_terms) %>%
      dplyr::summarise(
        kegg_pathways = paste(unique(kegg_description), collapse = "; "),
        .groups = "drop"
      )
  } else {
    comprehensive_table <- comprehensive_table %>%
      dplyr::mutate(kegg_pathways = NA_character_)
  }
  
  return(list(
    comprehensive_table = comprehensive_table,
    go_results = go_results,
    kegg_results = kegg_results,
    gene_annotations = gene_annotations
  ))
}

# Function to export results for each analysis
export_analysis_results <- function(results_list, analysis_name, results_dir = RESULTS_DIR) {
  # This function exports comprehensive results for a given analysis
  
  cat("\n=== Exporting results for:", analysis_name, "===\n")
  
  # Create timestamp
  timestamp <- format(Sys.time(), "%Y%m%d_%H%M%S")
  
  # Create analysis-specific directory
  analysis_dir <- file.path(results_dir, analysis_name)
  if (!dir.exists(analysis_dir)) {
    dir.create(analysis_dir, recursive = TRUE)
  }
  
  # Export significant correlations
  if ("sig_correlations" %in% names(results_list) && nrow(results_list$sig_correlations) > 0) {
    correlations_file <- file.path(analysis_dir, paste0("significant_correlations_", timestamp, ".tsv"))
    readr::write_tsv(results_list$sig_correlations, correlations_file)
    cat("Exported significant correlations to:", correlations_file, "\n")
  }
  
  # Export significant partial correlations
  if ("sig_partial_correlations" %in% names(results_list) && nrow(results_list$sig_partial_correlations) > 0) {
    partial_correlations_file <- file.path(analysis_dir, paste0("significant_partial_correlations_", timestamp, ".tsv"))
    readr::write_tsv(results_list$sig_partial_correlations, partial_correlations_file)
    cat("Exported significant partial correlations to:", partial_correlations_file, "\n")
  } else if ("combined_sig_partial_correlations" %in% names(results_list) && nrow(results_list$combined_sig_partial_correlations) > 0) {
    partial_correlations_file <- file.path(analysis_dir, paste0("significant_partial_correlations_", timestamp, ".tsv"))
    readr::write_tsv(results_list$combined_sig_partial_correlations, partial_correlations_file)
    cat("Exported significant partial correlations to:", partial_correlations_file, "\n")
  }
  
  # Export all correlations
  if ("correlation_results" %in% names(results_list) && nrow(results_list$correlation_results) > 0) {
    all_correlations_file <- file.path(analysis_dir, paste0("all_correlations_", timestamp, ".tsv"))
    readr::write_tsv(results_list$correlation_results, all_correlations_file)
    cat("Exported all correlations to:", all_correlations_file, "\n")
  } else if ("combined_all_correlations" %in% names(results_list) && nrow(results_list$combined_all_correlations) > 0) {
    all_correlations_file <- file.path(analysis_dir, paste0("all_correlations_", timestamp, ".tsv"))
    readr::write_tsv(results_list$combined_all_correlations, all_correlations_file)
    cat("Exported all correlations to:", all_correlations_file, "\n")
  }
  
  # Export DEG results
  if ("deg_sig" %in% names(results_list) && nrow(results_list$deg_sig) > 0) {
    deg_file <- file.path(analysis_dir, paste0("significant_genes_", timestamp, ".tsv"))
    readr::write_tsv(results_list$deg_sig, deg_file)
    cat("Exported significant genes to:", deg_file, "\n")
  } else if ("combined_deg" %in% names(results_list) && nrow(results_list$combined_deg) > 0) {
    deg_file <- file.path(analysis_dir, paste0("significant_genes_", timestamp, ".tsv"))
    readr::write_tsv(results_list$combined_deg, deg_file)
    cat("Exported significant genes to:", deg_file, "\n")
  }
  
  # Export DAT results
  if ("dat_sig" %in% names(results_list) && nrow(results_list$dat_sig) > 0) {
    dat_file <- file.path(analysis_dir, paste0("significant_taxa_", timestamp, ".tsv"))
    readr::write_tsv(results_list$dat_sig, dat_file)
    cat("Exported significant taxa to:", dat_file, "\n")
  } else if ("combined_dat" %in% names(results_list) && nrow(results_list$combined_dat) > 0) {
    dat_file <- file.path(analysis_dir, paste0("significant_taxa_", timestamp, ".tsv"))
    readr::write_tsv(results_list$combined_dat, dat_file)
    cat("Exported significant taxa to:", dat_file, "\n")
  }
  
  # Create and export comprehensive enrichment tables
  enrichment_results <- create_comprehensive_enrichment_tables(results_list, analysis_name)
  
  if (!is.null(enrichment_results)) {
    # Export comprehensive table
    comprehensive_file <- file.path(analysis_dir, paste0("comprehensive_gene_taxa_correlations_", timestamp, ".tsv"))
    readr::write_tsv(enrichment_results$comprehensive_table, comprehensive_file)
    cat("Exported comprehensive gene-taxa correlations to:", comprehensive_file, "\n")
    
    # Export GO results
    if (nrow(enrichment_results$go_results) > 0) {
      go_file <- file.path(analysis_dir, paste0("go_enrichment_", timestamp, ".tsv"))
      readr::write_tsv(enrichment_results$go_results, go_file)
      cat("Exported GO enrichment results to:", go_file, "\n")
    }
    
    # Export KEGG results
    if (nrow(enrichment_results$kegg_results) > 0) {
      kegg_file <- file.path(analysis_dir, paste0("kegg_enrichment_", timestamp, ".tsv"))
      readr::write_tsv(enrichment_results$kegg_results, kegg_file)
      cat("Exported KEGG enrichment results to:", kegg_file, "\n")
    }
    
    # Export gene annotations
    if (nrow(enrichment_results$gene_annotations) > 0) {
      annotations_file <- file.path(analysis_dir, paste0("gene_annotations_", timestamp, ".tsv"))
      readr::write_tsv(enrichment_results$gene_annotations, annotations_file)
      cat("Exported gene annotations to:", annotations_file, "\n")
    }
  }
  
  cat("Export complete for:", analysis_name, "\n")
  return(enrichment_results)
}

Question 0: All Treatments Analysis

## 
## === COMPREHENSIVE ENRICHMENT ANALYSIS - QUESTION 0: ALL TREATMENTS ===
## 
## === Creating comprehensive enrichment tables for: All_Treatments ===
## Number of unique genes: 501
## 'select()' returned 1:many mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## Reading KEGG annotation online: "https://rest.kegg.jp/link/dre/pathway"...
## Reading KEGG annotation online: "https://rest.kegg.jp/list/pathway/dre"...
## Reading KEGG annotation online: "https://rest.kegg.jp/conv/ncbi-geneid/dre"...
## Warning in dplyr::left_join(., go_gene_mapping, by = c(gene_id = "gene_symbol")): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 22 of `x` matches multiple rows in `y`.
## ℹ Row 17 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
##   "many-to-many"` to silence this warning.
## $comprehensive_table
## <div id="eaqgdmjilt" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#eaqgdmjilt table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #eaqgdmjilt thead, #eaqgdmjilt tbody, #eaqgdmjilt tfoot, #eaqgdmjilt tr, #eaqgdmjilt td, #eaqgdmjilt th {
##   border-style: none;
## }
## 
## #eaqgdmjilt p {
##   margin: 0;
##   padding: 0;
## }
## 
## #eaqgdmjilt .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #eaqgdmjilt .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #eaqgdmjilt .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #eaqgdmjilt .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #eaqgdmjilt .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #eaqgdmjilt .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #eaqgdmjilt .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #eaqgdmjilt .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #eaqgdmjilt .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #eaqgdmjilt .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #eaqgdmjilt .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #eaqgdmjilt .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #eaqgdmjilt .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #eaqgdmjilt .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #eaqgdmjilt .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #eaqgdmjilt .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #eaqgdmjilt .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #eaqgdmjilt .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #eaqgdmjilt .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #eaqgdmjilt .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #eaqgdmjilt .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #eaqgdmjilt .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #eaqgdmjilt .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #eaqgdmjilt .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #eaqgdmjilt .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #eaqgdmjilt .gt_left {
##   text-align: left;
## }
## 
## #eaqgdmjilt .gt_center {
##   text-align: center;
## }
## 
## #eaqgdmjilt .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #eaqgdmjilt .gt_font_normal {
##   font-weight: normal;
## }
## 
## #eaqgdmjilt .gt_font_bold {
##   font-weight: bold;
## }
## 
## #eaqgdmjilt .gt_font_italic {
##   font-style: italic;
## }
## 
## #eaqgdmjilt .gt_super {
##   font-size: 65%;
## }
## 
## #eaqgdmjilt .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #eaqgdmjilt .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #eaqgdmjilt .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #eaqgdmjilt .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #eaqgdmjilt .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #eaqgdmjilt .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #eaqgdmjilt .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="11" class="gt_heading gt_title gt_font_normal" style>Top 20 Significant Gene-Taxa Correlations</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="11" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>All Treatments Analysis</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Analysis">Analysis</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene ID">Gene ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene Description">Gene Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Taxa ID">Taxa ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Correlation">Correlation</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="P-value">P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="FDR">FDR</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Abs Correlation">Abs Correlation</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Entrez ID">Entrez ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO Terms">GO Terms</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="KEGG Pathways">KEGG Pathways</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100006250</td>
## <td headers="gene_description" class="gt_row gt_left">annexin A2-A-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Gemmobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.538</td>
## <td headers="p_value" class="gt_row gt_right">1.20 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.33 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.538</td>
## <td headers="entrez_id" class="gt_row gt_right">100006250</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100006250</td>
## <td headers="gene_description" class="gt_row gt_left">annexin A2-A-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Paenirhodobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.407</td>
## <td headers="p_value" class="gt_row gt_right">3.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">2.31 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.407</td>
## <td headers="entrez_id" class="gt_row gt_right">100006250</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100148399</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC100148399</td>
## <td headers="taxa_id" class="gt_row gt_left">Ensifer</td>
## <td headers="correlation" class="gt_row gt_right">0.620</td>
## <td headers="p_value" class="gt_row gt_right">6.99 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">3.89 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.620</td>
## <td headers="entrez_id" class="gt_row gt_right">100148399</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100149761</td>
## <td headers="gene_description" class="gt_row gt_left">dispanin subfamily A member 2b-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Crenobacter</td>
## <td headers="correlation" class="gt_row gt_right">0.672</td>
## <td headers="p_value" class="gt_row gt_right">4.60 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">7.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.672</td>
## <td headers="entrez_id" class="gt_row gt_right">100149761</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100149991</td>
## <td headers="gene_description" class="gt_row gt_left">E3 ubiquitin-protein ligase TRIM39-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Tundrisphaera</td>
## <td headers="correlation" class="gt_row gt_right">−0.606</td>
## <td headers="p_value" class="gt_row gt_right">3.60 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">6.10 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.606</td>
## <td headers="entrez_id" class="gt_row gt_right">100149991</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100150003</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC100150003</td>
## <td headers="taxa_id" class="gt_row gt_left">Polymorphobacter</td>
## <td headers="correlation" class="gt_row gt_right">0.709</td>
## <td headers="p_value" class="gt_row gt_right">1.40 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">1.84 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.709</td>
## <td headers="entrez_id" class="gt_row gt_right">100150003</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100150882</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC100150882</td>
## <td headers="taxa_id" class="gt_row gt_left">Polymorphobacter</td>
## <td headers="correlation" class="gt_row gt_right">0.798</td>
## <td headers="p_value" class="gt_row gt_right">7.99 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">1.14 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.798</td>
## <td headers="entrez_id" class="gt_row gt_right">100150882</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100330485</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC100330485</td>
## <td headers="taxa_id" class="gt_row gt_left">Tundrisphaera</td>
## <td headers="correlation" class="gt_row gt_right">−0.546</td>
## <td headers="p_value" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.08 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.546</td>
## <td headers="entrez_id" class="gt_row gt_right">100330485</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100331609</td>
## <td headers="gene_description" class="gt_row gt_left">GTPase IMAP family member 8-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Gemmobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.671</td>
## <td headers="p_value" class="gt_row gt_right">1.20 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.671</td>
## <td headers="entrez_id" class="gt_row gt_right">100331609</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100332293</td>
## <td headers="gene_description" class="gt_row gt_left">WD repeat domain phosphoinositide-interacting protein 1-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Gemmobacter</td>
## <td headers="correlation" class="gt_row gt_right">0.523</td>
## <td headers="p_value" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">2.22 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.523</td>
## <td headers="entrez_id" class="gt_row gt_right">100332293</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100334101</td>
## <td headers="gene_description" class="gt_row gt_left">protein NLRC3-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Devosia</td>
## <td headers="correlation" class="gt_row gt_right">0.801</td>
## <td headers="p_value" class="gt_row gt_right">5.09 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">8.09 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.801</td>
## <td headers="entrez_id" class="gt_row gt_right">100334101</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882521</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC101882521</td>
## <td headers="taxa_id" class="gt_row gt_left">Aquihabitans</td>
## <td headers="correlation" class="gt_row gt_right">0.813</td>
## <td headers="p_value" class="gt_row gt_right">2.70 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.18 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.813</td>
## <td headers="entrez_id" class="gt_row gt_right">101882521</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882521</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC101882521</td>
## <td headers="taxa_id" class="gt_row gt_left">Bradyrhizobium</td>
## <td headers="correlation" class="gt_row gt_right">0.805</td>
## <td headers="p_value" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">2.50 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.805</td>
## <td headers="entrez_id" class="gt_row gt_right">101882521</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882521</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC101882521</td>
## <td headers="taxa_id" class="gt_row gt_left">Mycobacterium</td>
## <td headers="correlation" class="gt_row gt_right">0.889</td>
## <td headers="p_value" class="gt_row gt_right">2.20 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.78 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.889</td>
## <td headers="entrez_id" class="gt_row gt_right">101882521</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882521</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC101882521</td>
## <td headers="taxa_id" class="gt_row gt_left">Nocardia</td>
## <td headers="correlation" class="gt_row gt_right">0.737</td>
## <td headers="p_value" class="gt_row gt_right">5.39 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">7.29 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.737</td>
## <td headers="entrez_id" class="gt_row gt_right">101882521</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882702</td>
## <td headers="gene_description" class="gt_row gt_left">golgin subfamily A member 6-like protein 22</td>
## <td headers="taxa_id" class="gt_row gt_left">Hyphomicrobium</td>
## <td headers="correlation" class="gt_row gt_right">−0.359</td>
## <td headers="p_value" class="gt_row gt_right">6.19 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">7.40 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.359</td>
## <td headers="entrez_id" class="gt_row gt_right">101882702</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882702</td>
## <td headers="gene_description" class="gt_row gt_left">golgin subfamily A member 6-like protein 22</td>
## <td headers="taxa_id" class="gt_row gt_left">Mycobacterium</td>
## <td headers="correlation" class="gt_row gt_right">−0.444</td>
## <td headers="p_value" class="gt_row gt_right">3.10 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">8.85 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.444</td>
## <td headers="entrez_id" class="gt_row gt_right">101882702</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882702</td>
## <td headers="gene_description" class="gt_row gt_left">golgin subfamily A member 6-like protein 22</td>
## <td headers="taxa_id" class="gt_row gt_left">Paucibacter</td>
## <td headers="correlation" class="gt_row gt_right">0.825</td>
## <td headers="p_value" class="gt_row gt_right">6.99 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">3.04 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.825</td>
## <td headers="entrez_id" class="gt_row gt_right">101882702</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101883939</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC101883939</td>
## <td headers="taxa_id" class="gt_row gt_left">Vibrio</td>
## <td headers="correlation" class="gt_row gt_right">0.504</td>
## <td headers="p_value" class="gt_row gt_right">9.99 × 10<sup style='font-size: 65%;'>−4</sup></td>
## <td headers="fdr" class="gt_row gt_right">7.68 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.504</td>
## <td headers="entrez_id" class="gt_row gt_right">101883939</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">All_Treatments</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101884777</td>
## <td headers="gene_description" class="gt_row gt_left">butyrophilin-like protein 2</td>
## <td headers="taxa_id" class="gt_row gt_left">Vogesella</td>
## <td headers="correlation" class="gt_row gt_right">0.328</td>
## <td headers="p_value" class="gt_row gt_right">6.29 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">8.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.328</td>
## <td headers="entrez_id" class="gt_row gt_right">101884777</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $go_table
## <div id="ikcpexnevb" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#ikcpexnevb table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #ikcpexnevb thead, #ikcpexnevb tbody, #ikcpexnevb tfoot, #ikcpexnevb tr, #ikcpexnevb td, #ikcpexnevb th {
##   border-style: none;
## }
## 
## #ikcpexnevb p {
##   margin: 0;
##   padding: 0;
## }
## 
## #ikcpexnevb .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #ikcpexnevb .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #ikcpexnevb .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #ikcpexnevb .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #ikcpexnevb .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #ikcpexnevb .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #ikcpexnevb .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #ikcpexnevb .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #ikcpexnevb .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #ikcpexnevb .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #ikcpexnevb .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #ikcpexnevb .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #ikcpexnevb .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #ikcpexnevb .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #ikcpexnevb .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ikcpexnevb .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #ikcpexnevb .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #ikcpexnevb .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #ikcpexnevb .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ikcpexnevb .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #ikcpexnevb .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ikcpexnevb .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #ikcpexnevb .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ikcpexnevb .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #ikcpexnevb .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ikcpexnevb .gt_left {
##   text-align: left;
## }
## 
## #ikcpexnevb .gt_center {
##   text-align: center;
## }
## 
## #ikcpexnevb .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #ikcpexnevb .gt_font_normal {
##   font-weight: normal;
## }
## 
## #ikcpexnevb .gt_font_bold {
##   font-weight: bold;
## }
## 
## #ikcpexnevb .gt_font_italic {
##   font-style: italic;
## }
## 
## #ikcpexnevb .gt_super {
##   font-size: 65%;
## }
## 
## #ikcpexnevb .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #ikcpexnevb .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #ikcpexnevb .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #ikcpexnevb .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #ikcpexnevb .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #ikcpexnevb .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #ikcpexnevb .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_title gt_font_normal" style>Gene Ontology Enrichment Results</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>All Treatments Analysis</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO ID">GO ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO Term Description">GO Term Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Adjusted P-value">Adjusted P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene Count">Gene Count</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene IDs">Gene IDs</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="-log10(adj. P-value)">-log10(adj. P-value)</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="ID" class="gt_row gt_left">GO:0006997</td>
## <td headers="Description" class="gt_row gt_left">nucleus organization</td>
## <td headers="p.adjust" class="gt_row gt_right">8.21 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="Count" class="gt_row gt_right">7</td>
## <td headers="geneID" class="gt_row gt_left">wrap53/chmp2a/bend3/nsfl1c/bmb/coil/lmnl3</td>
## <td headers="log_padj" class="gt_row gt_right">2.09</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0019941</td>
## <td headers="Description" class="gt_row gt_left">modification-dependent protein catabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">1.37 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">22</td>
## <td headers="geneID" class="gt_row gt_left">uchl5/psmd4a/psmd6/lonp1/erlec1/ufl1/ube2h/rnf111/prkn/ube2d2/ube2d2l/nsfl1c/psmd11b/psmc3/uba7/uba1/herc56.2/psma6a/usp11/psmc1a/psmc2/usp38</td>
## <td headers="log_padj" class="gt_row gt_right">1.86</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0043632</td>
## <td headers="Description" class="gt_row gt_left">modification-dependent macromolecule catabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">1.37 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">22</td>
## <td headers="geneID" class="gt_row gt_left">uchl5/psmd4a/psmd6/lonp1/erlec1/ufl1/ube2h/rnf111/prkn/ube2d2/ube2d2l/nsfl1c/psmd11b/psmc3/uba7/uba1/herc56.2/psma6a/usp11/psmc1a/psmc2/usp38</td>
## <td headers="log_padj" class="gt_row gt_right">1.86</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0006511</td>
## <td headers="Description" class="gt_row gt_left">ubiquitin-dependent protein catabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">1.71 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">21</td>
## <td headers="geneID" class="gt_row gt_left">uchl5/psmd4a/psmd6/erlec1/ufl1/ube2h/rnf111/prkn/ube2d2/ube2d2l/nsfl1c/psmd11b/psmc3/uba7/uba1/herc56.2/psma6a/usp11/psmc1a/psmc2/usp38</td>
## <td headers="log_padj" class="gt_row gt_right">1.77</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0006998</td>
## <td headers="Description" class="gt_row gt_left">nuclear envelope organization</td>
## <td headers="p.adjust" class="gt_row gt_right">9.69 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">4</td>
## <td headers="geneID" class="gt_row gt_left">chmp2a/nsfl1c/bmb/lmnl3</td>
## <td headers="log_padj" class="gt_row gt_right">1.01</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $kegg_table
## <div id="rxqrenhwhu" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#rxqrenhwhu table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #rxqrenhwhu thead, #rxqrenhwhu tbody, #rxqrenhwhu tfoot, #rxqrenhwhu tr, #rxqrenhwhu td, #rxqrenhwhu th {
##   border-style: none;
## }
## 
## #rxqrenhwhu p {
##   margin: 0;
##   padding: 0;
## }
## 
## #rxqrenhwhu .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #rxqrenhwhu .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #rxqrenhwhu .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #rxqrenhwhu .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #rxqrenhwhu .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #rxqrenhwhu .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #rxqrenhwhu .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #rxqrenhwhu .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #rxqrenhwhu .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #rxqrenhwhu .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #rxqrenhwhu .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #rxqrenhwhu .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #rxqrenhwhu .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #rxqrenhwhu .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #rxqrenhwhu .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #rxqrenhwhu .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #rxqrenhwhu .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #rxqrenhwhu .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #rxqrenhwhu .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #rxqrenhwhu .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #rxqrenhwhu .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #rxqrenhwhu .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #rxqrenhwhu .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #rxqrenhwhu .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #rxqrenhwhu .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #rxqrenhwhu .gt_left {
##   text-align: left;
## }
## 
## #rxqrenhwhu .gt_center {
##   text-align: center;
## }
## 
## #rxqrenhwhu .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #rxqrenhwhu .gt_font_normal {
##   font-weight: normal;
## }
## 
## #rxqrenhwhu .gt_font_bold {
##   font-weight: bold;
## }
## 
## #rxqrenhwhu .gt_font_italic {
##   font-style: italic;
## }
## 
## #rxqrenhwhu .gt_super {
##   font-size: 65%;
## }
## 
## #rxqrenhwhu .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #rxqrenhwhu .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #rxqrenhwhu .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #rxqrenhwhu .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #rxqrenhwhu .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #rxqrenhwhu .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #rxqrenhwhu .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_title gt_font_normal" style>KEGG Pathway Enrichment Results</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>All Treatments Analysis</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="KEGG ID">KEGG ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Pathway Description">Pathway Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Adjusted P-value">Adjusted P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene Count">Gene Count</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene IDs">Gene IDs</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="-log10(adj. P-value)">-log10(adj. P-value)</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="ID" class="gt_row gt_left">dre03050</td>
## <td headers="Description" class="gt_row gt_left">Proteasome</td>
## <td headers="p.adjust" class="gt_row gt_right">1.10 × 10<sup style='font-size: 65%;'>−4</sup></td>
## <td headers="Count" class="gt_row gt_right">8</td>
## <td headers="geneID" class="gt_row gt_right">415202/393261/393518/322265/321947/171585/336786/393941</td>
## <td headers="log_padj" class="gt_row gt_right">3.96</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04210</td>
## <td headers="Description" class="gt_row gt_left">Apoptosis</td>
## <td headers="p.adjust" class="gt_row gt_right">2.47 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">10</td>
## <td headers="geneID" class="gt_row gt_right">393154/561021/751765/567460/794666/195817/563053/552927/791531/58022</td>
## <td headers="log_padj" class="gt_row gt_right">1.61</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04621</td>
## <td headers="Description" class="gt_row gt_left">NOD-like receptor signaling pathway</td>
## <td headers="p.adjust" class="gt_row gt_right">2.47 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">9</td>
## <td headers="geneID" class="gt_row gt_right">492489/393620/561021/100149641/100150844/567460/794666/100334992/58022</td>
## <td headers="log_padj" class="gt_row gt_right">1.61</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04981</td>
## <td headers="Description" class="gt_row gt_left">Folate transport and metabolism</td>
## <td headers="p.adjust" class="gt_row gt_right">2.47 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">4</td>
## <td headers="geneID" class="gt_row gt_right">323301/393561/100073336/404609</td>
## <td headers="log_padj" class="gt_row gt_right">1.61</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04625</td>
## <td headers="Description" class="gt_row gt_left">C-type lectin receptor signaling pathway</td>
## <td headers="p.adjust" class="gt_row gt_right">5.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">7</td>
## <td headers="geneID" class="gt_row gt_right">192322/561021/100150844/565241/794666/246227/58022</td>
## <td headers="log_padj" class="gt_row gt_right">1.30</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04146</td>
## <td headers="Description" class="gt_row gt_left">Peroxisome</td>
## <td headers="p.adjust" class="gt_row gt_right">5.49 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">6</td>
## <td headers="geneID" class="gt_row gt_right">566378/573990/566863/100034578/100037349/334644</td>
## <td headers="log_padj" class="gt_row gt_right">1.26</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre03410</td>
## <td headers="Description" class="gt_row gt_left">Base excision repair</td>
## <td headers="p.adjust" class="gt_row gt_right">7.87 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">4</td>
## <td headers="geneID" class="gt_row gt_right">259256/550335/393949/571485</td>
## <td headers="log_padj" class="gt_row gt_right">1.10</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre00140</td>
## <td headers="Description" class="gt_row gt_left">Steroid hormone biosynthesis</td>
## <td headers="p.adjust" class="gt_row gt_right">8.25 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">5</td>
## <td headers="geneID" class="gt_row gt_right">324340/100379286/100415797/678597/334098</td>
## <td headers="log_padj" class="gt_row gt_right">1.08</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04120</td>
## <td headers="Description" class="gt_row gt_left">Ubiquitin mediated proteolysis</td>
## <td headers="p.adjust" class="gt_row gt_right">8.25 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">7</td>
## <td headers="geneID" class="gt_row gt_right">368425/550328/393934/335444/100001302/406335/565383</td>
## <td headers="log_padj" class="gt_row gt_right">1.08</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $summary_table
## <div id="dydgjrmuvs" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#dydgjrmuvs table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #dydgjrmuvs thead, #dydgjrmuvs tbody, #dydgjrmuvs tfoot, #dydgjrmuvs tr, #dydgjrmuvs td, #dydgjrmuvs th {
##   border-style: none;
## }
## 
## #dydgjrmuvs p {
##   margin: 0;
##   padding: 0;
## }
## 
## #dydgjrmuvs .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #dydgjrmuvs .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #dydgjrmuvs .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #dydgjrmuvs .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #dydgjrmuvs .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #dydgjrmuvs .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #dydgjrmuvs .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #dydgjrmuvs .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #dydgjrmuvs .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #dydgjrmuvs .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #dydgjrmuvs .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #dydgjrmuvs .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #dydgjrmuvs .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #dydgjrmuvs .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #dydgjrmuvs .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #dydgjrmuvs .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #dydgjrmuvs .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #dydgjrmuvs .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #dydgjrmuvs .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #dydgjrmuvs .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #dydgjrmuvs .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #dydgjrmuvs .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #dydgjrmuvs .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #dydgjrmuvs .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #dydgjrmuvs .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #dydgjrmuvs .gt_left {
##   text-align: left;
## }
## 
## #dydgjrmuvs .gt_center {
##   text-align: center;
## }
## 
## #dydgjrmuvs .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #dydgjrmuvs .gt_font_normal {
##   font-weight: normal;
## }
## 
## #dydgjrmuvs .gt_font_bold {
##   font-weight: bold;
## }
## 
## #dydgjrmuvs .gt_font_italic {
##   font-style: italic;
## }
## 
## #dydgjrmuvs .gt_super {
##   font-size: 65%;
## }
## 
## #dydgjrmuvs .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #dydgjrmuvs .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #dydgjrmuvs .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #dydgjrmuvs .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #dydgjrmuvs .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #dydgjrmuvs .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #dydgjrmuvs .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="2" class="gt_heading gt_title gt_font_normal" style>Summary Statistics</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="2" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>All Treatments Analysis</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Metric">Metric</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Value">Value</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="Metric" class="gt_row gt_left">Total significant gene-taxa correlations</td>
## <td headers="Value" class="gt_row gt_right">554</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Unique genes involved</td>
## <td headers="Value" class="gt_row gt_right">501</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Unique taxa involved</td>
## <td headers="Value" class="gt_row gt_right">63</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Enriched GO terms</td>
## <td headers="Value" class="gt_row gt_right">5</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Enriched KEGG pathways</td>
## <td headers="Value" class="gt_row gt_right">9</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Mean absolute correlation</td>
## <td headers="Value" class="gt_row gt_right">0.606</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Median absolute correlation</td>
## <td headers="Value" class="gt_row gt_right">0.609</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## Top 20 significant gene-taxa correlations with annotations:
## 
## Top 15 enriched GO terms:
## 
## Top 15 enriched KEGG pathways:
Top 15 Enriched KEGG Pathways
All Treatments Analysis
KEGG ID KEGG Pathway Description Adjusted P-value Gene Count Gene IDs -log10(adj p-value)
dre03050 Proteasome 1.10 × 10−4 8 415202/393261/393518/322265/321947/171585/336786/393941 3.957
dre04210 Apoptosis 2.47 × 10−2 10 393154/561021/751765/567460/794666/195817/563053/552927/791531/58022 1.608
dre04621 NOD-like receptor signaling pathway 2.47 × 10−2 9 492489/393620/561021/100149641/100150844/567460/794666/100334992/58022 1.608
dre04981 Folate transport and metabolism 2.47 × 10−2 4 323301/393561/100073336/404609 1.608
dre04625 C-type lectin receptor signaling pathway 5.07 × 10−2 7 192322/561021/100150844/565241/794666/246227/58022 1.295
dre04146 Peroxisome 5.49 × 10−2 6 566378/573990/566863/100034578/100037349/334644 1.260
dre03410 Base excision repair 7.87 × 10−2 4 259256/550335/393949/571485 1.104
dre00140 Steroid hormone biosynthesis 8.25 × 10−2 5 324340/100379286/100415797/678597/334098 1.084
dre04120 Ubiquitin mediated proteolysis 8.25 × 10−2 7 368425/550328/393934/335444/100001302/406335/565383 1.084

Question 1: Parasite Exposure Response

## 
## === COMPREHENSIVE ENRICHMENT ANALYSIS - QUESTION 1: PARASITE EXPOSURE RESPONSE ===
## 
## === Creating comprehensive enrichment tables for: Parasite_Exposure_Response ===
## Number of unique genes: 76
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## Warning in dplyr::left_join(., go_gene_mapping, by = c(gene_id = "gene_symbol")): Detected an unexpected many-to-many relationship between `x` and `y`.
## ℹ Row 1 of `x` matches multiple rows in `y`.
## ℹ Row 59 of `y` matches multiple rows in `x`.
## ℹ If a many-to-many relationship is expected, set `relationship =
##   "many-to-many"` to silence this warning.
## $comprehensive_table
## <div id="phwfamneiw" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#phwfamneiw table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #phwfamneiw thead, #phwfamneiw tbody, #phwfamneiw tfoot, #phwfamneiw tr, #phwfamneiw td, #phwfamneiw th {
##   border-style: none;
## }
## 
## #phwfamneiw p {
##   margin: 0;
##   padding: 0;
## }
## 
## #phwfamneiw .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #phwfamneiw .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #phwfamneiw .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #phwfamneiw .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #phwfamneiw .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #phwfamneiw .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #phwfamneiw .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #phwfamneiw .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #phwfamneiw .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #phwfamneiw .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #phwfamneiw .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #phwfamneiw .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #phwfamneiw .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #phwfamneiw .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #phwfamneiw .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #phwfamneiw .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #phwfamneiw .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #phwfamneiw .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #phwfamneiw .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #phwfamneiw .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #phwfamneiw .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #phwfamneiw .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #phwfamneiw .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #phwfamneiw .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #phwfamneiw .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #phwfamneiw .gt_left {
##   text-align: left;
## }
## 
## #phwfamneiw .gt_center {
##   text-align: center;
## }
## 
## #phwfamneiw .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #phwfamneiw .gt_font_normal {
##   font-weight: normal;
## }
## 
## #phwfamneiw .gt_font_bold {
##   font-weight: bold;
## }
## 
## #phwfamneiw .gt_font_italic {
##   font-style: italic;
## }
## 
## #phwfamneiw .gt_super {
##   font-size: 65%;
## }
## 
## #phwfamneiw .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #phwfamneiw .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #phwfamneiw .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #phwfamneiw .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #phwfamneiw .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #phwfamneiw .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #phwfamneiw .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="11" class="gt_heading gt_title gt_font_normal" style>Top 20 Significant Gene-Taxa Correlations</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="11" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Parasite Exposure Response</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Analysis">Analysis</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene ID">Gene ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene Description">Gene Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Taxa ID">Taxa ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Correlation">Correlation</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="P-value">P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="FDR">FDR</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Abs Correlation">Abs Correlation</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Entrez ID">Entrez ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO Terms">GO Terms</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="KEGG Pathways">KEGG Pathways</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100006250</td>
## <td headers="gene_description" class="gt_row gt_left">annexin A2-A-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Gemmobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.538</td>
## <td headers="p_value" class="gt_row gt_right">5.99 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.538</td>
## <td headers="entrez_id" class="gt_row gt_right">100006250</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100006250</td>
## <td headers="gene_description" class="gt_row gt_left">annexin A2-A-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Paenirhodobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.407</td>
## <td headers="p_value" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.407</td>
## <td headers="entrez_id" class="gt_row gt_right">100006250</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101884777</td>
## <td headers="gene_description" class="gt_row gt_left">butyrophilin-like protein 2</td>
## <td headers="taxa_id" class="gt_row gt_left">Vogesella</td>
## <td headers="correlation" class="gt_row gt_right">0.328</td>
## <td headers="p_value" class="gt_row gt_right">6.19 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">7.84 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.328</td>
## <td headers="entrez_id" class="gt_row gt_right">101884777</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">LOC137487483</td>
## <td headers="gene_description" class="gt_row gt_left">LOC137487483</td>
## <td headers="taxa_id" class="gt_row gt_left">Paenirhodobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.232</td>
## <td headers="p_value" class="gt_row gt_right">2.10 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.232</td>
## <td headers="entrez_id" class="gt_row gt_right">NA</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">aaas</td>
## <td headers="gene_description" class="gt_row gt_left">achalasia, adrenocortical insufficiency, alacrimia</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.536</td>
## <td headers="p_value" class="gt_row gt_right">3.90 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.41 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.536</td>
## <td headers="entrez_id" class="gt_row gt_right">378454</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">agr2</td>
## <td headers="gene_description" class="gt_row gt_left">anterior gradient 2</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.354</td>
## <td headers="p_value" class="gt_row gt_right">3.40 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.354</td>
## <td headers="entrez_id" class="gt_row gt_right">335616</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">anxa5b</td>
## <td headers="gene_description" class="gt_row gt_left">annexin A5b</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.380</td>
## <td headers="p_value" class="gt_row gt_right">1.30 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.380</td>
## <td headers="entrez_id" class="gt_row gt_right">337132</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">arf2b</td>
## <td headers="gene_description" class="gt_row gt_left">ADP-ribosylation factor 2b</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.410</td>
## <td headers="p_value" class="gt_row gt_right">3.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.410</td>
## <td headers="entrez_id" class="gt_row gt_right">327026</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">armc7</td>
## <td headers="gene_description" class="gt_row gt_left">armadillo repeat containing 7</td>
## <td headers="taxa_id" class="gt_row gt_left">Paenirhodobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.357</td>
## <td headers="p_value" class="gt_row gt_right">7.99 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.357</td>
## <td headers="entrez_id" class="gt_row gt_right">767659</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">bbc3</td>
## <td headers="gene_description" class="gt_row gt_left">BCL2 binding component 3</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">0.685</td>
## <td headers="p_value" class="gt_row gt_right">1.60 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.685</td>
## <td headers="entrez_id" class="gt_row gt_right">751763</td>
## <td headers="go_terms" class="gt_row gt_left">mitochondrion organization</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">cdk10</td>
## <td headers="gene_description" class="gt_row gt_left">cyclin dependent kinase 10</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.519</td>
## <td headers="p_value" class="gt_row gt_right">2.50 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.519</td>
## <td headers="entrez_id" class="gt_row gt_right">550285</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">ciao1</td>
## <td headers="gene_description" class="gt_row gt_left">cytosolic iron-sulfur assembly component 1</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.508</td>
## <td headers="p_value" class="gt_row gt_right">2.50 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.508</td>
## <td headers="entrez_id" class="gt_row gt_right">795104</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">commd9</td>
## <td headers="gene_description" class="gt_row gt_left">COMM domain containing 9</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.508</td>
## <td headers="p_value" class="gt_row gt_right">1.30 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.508</td>
## <td headers="entrez_id" class="gt_row gt_right">562660</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">csf3r</td>
## <td headers="gene_description" class="gt_row gt_left">colony stimulating factor 3 receptor</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.420</td>
## <td headers="p_value" class="gt_row gt_right">1.80 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.420</td>
## <td headers="entrez_id" class="gt_row gt_right">100134935</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">ctbp1l</td>
## <td headers="gene_description" class="gt_row gt_left">ctbp1l</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.432</td>
## <td headers="p_value" class="gt_row gt_right">2.60 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.432</td>
## <td headers="entrez_id" class="gt_row gt_right">NA</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">denr</td>
## <td headers="gene_description" class="gt_row gt_left">density-regulated protein</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.476</td>
## <td headers="p_value" class="gt_row gt_right">3.60 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.28 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.476</td>
## <td headers="entrez_id" class="gt_row gt_right">436970</td>
## <td headers="go_terms" class="gt_row gt_left">ribonucleoprotein complex biogenesis; protein-RNA complex assembly; protein-RNA complex organization</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">dmap1</td>
## <td headers="gene_description" class="gt_row gt_left">DNA methyltransferase 1 associated protein 1</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.468</td>
## <td headers="p_value" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.468</td>
## <td headers="entrez_id" class="gt_row gt_right">393225</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">fus</td>
## <td headers="gene_description" class="gt_row gt_left">FUS RNA binding protein</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.466</td>
## <td headers="p_value" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.466</td>
## <td headers="entrez_id" class="gt_row gt_right">394058</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">gfpt1</td>
## <td headers="gene_description" class="gt_row gt_left">glutamine--fructose-6-phosphate transaminase 1</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.449</td>
## <td headers="p_value" class="gt_row gt_right">4.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.47 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.449</td>
## <td headers="entrez_id" class="gt_row gt_right">567861</td>
## <td headers="go_terms" class="gt_row gt_left">fructose 6-phosphate metabolic process</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Parasite_Exposure_Response</td>
## <td headers="gene_id" class="gt_row gt_left">gng10</td>
## <td headers="gene_description" class="gt_row gt_left">guanine nucleotide binding protein (G protein), gamma 10</td>
## <td headers="taxa_id" class="gt_row gt_left">Paenirhodobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.459</td>
## <td headers="p_value" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.459</td>
## <td headers="entrez_id" class="gt_row gt_right">796780</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $go_table
## <div id="pzkjjxayys" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#pzkjjxayys table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #pzkjjxayys thead, #pzkjjxayys tbody, #pzkjjxayys tfoot, #pzkjjxayys tr, #pzkjjxayys td, #pzkjjxayys th {
##   border-style: none;
## }
## 
## #pzkjjxayys p {
##   margin: 0;
##   padding: 0;
## }
## 
## #pzkjjxayys .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #pzkjjxayys .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #pzkjjxayys .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #pzkjjxayys .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #pzkjjxayys .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #pzkjjxayys .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #pzkjjxayys .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #pzkjjxayys .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #pzkjjxayys .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #pzkjjxayys .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #pzkjjxayys .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #pzkjjxayys .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #pzkjjxayys .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #pzkjjxayys .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #pzkjjxayys .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #pzkjjxayys .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #pzkjjxayys .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #pzkjjxayys .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #pzkjjxayys .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #pzkjjxayys .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #pzkjjxayys .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #pzkjjxayys .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #pzkjjxayys .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #pzkjjxayys .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #pzkjjxayys .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #pzkjjxayys .gt_left {
##   text-align: left;
## }
## 
## #pzkjjxayys .gt_center {
##   text-align: center;
## }
## 
## #pzkjjxayys .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #pzkjjxayys .gt_font_normal {
##   font-weight: normal;
## }
## 
## #pzkjjxayys .gt_font_bold {
##   font-weight: bold;
## }
## 
## #pzkjjxayys .gt_font_italic {
##   font-style: italic;
## }
## 
## #pzkjjxayys .gt_super {
##   font-size: 65%;
## }
## 
## #pzkjjxayys .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #pzkjjxayys .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #pzkjjxayys .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #pzkjjxayys .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #pzkjjxayys .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #pzkjjxayys .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #pzkjjxayys .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_title gt_font_normal" style>Gene Ontology Enrichment Results</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Parasite Exposure Response</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO ID">GO ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO Term Description">GO Term Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Adjusted P-value">Adjusted P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene Count">Gene Count</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene IDs">Gene IDs</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="-log10(adj. P-value)">-log10(adj. P-value)</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="ID" class="gt_row gt_left">GO:0019941</td>
## <td headers="Description" class="gt_row gt_left">modification-dependent protein catabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">8.75 × 10<sup style='font-size: 65%;'>−4</sup></td>
## <td headers="Count" class="gt_row gt_right">10</td>
## <td headers="geneID" class="gt_row gt_left">spsb1/uchl5/psmc4/nsfl1c/psmd4a/psmd6/psmd1/ppp1r11/lonp1/psmd3</td>
## <td headers="log_padj" class="gt_row gt_right">3.058</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0043632</td>
## <td headers="Description" class="gt_row gt_left">modification-dependent macromolecule catabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">8.75 × 10<sup style='font-size: 65%;'>−4</sup></td>
## <td headers="Count" class="gt_row gt_right">10</td>
## <td headers="geneID" class="gt_row gt_left">spsb1/uchl5/psmc4/nsfl1c/psmd4a/psmd6/psmd1/ppp1r11/lonp1/psmd3</td>
## <td headers="log_padj" class="gt_row gt_right">3.058</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0006511</td>
## <td headers="Description" class="gt_row gt_left">ubiquitin-dependent protein catabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">3.08 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="Count" class="gt_row gt_right">9</td>
## <td headers="geneID" class="gt_row gt_left">spsb1/uchl5/psmc4/nsfl1c/psmd4a/psmd6/psmd1/ppp1r11/psmd3</td>
## <td headers="log_padj" class="gt_row gt_right">2.511</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0022613</td>
## <td headers="Description" class="gt_row gt_left">ribonucleoprotein complex biogenesis</td>
## <td headers="p.adjust" class="gt_row gt_right">1.67 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">7</td>
## <td headers="geneID" class="gt_row gt_left">mtrex/prpf31/srpk1b/denr/imp4/nom1/mcts1</td>
## <td headers="log_padj" class="gt_row gt_right">1.778</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0043161</td>
## <td headers="Description" class="gt_row gt_left">proteasome-mediated ubiquitin-dependent protein catabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">2.55 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">6</td>
## <td headers="geneID" class="gt_row gt_left">spsb1/psmc4/nsfl1c/psmd4a/psmd6/psmd1</td>
## <td headers="log_padj" class="gt_row gt_right">1.594</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0010498</td>
## <td headers="Description" class="gt_row gt_left">proteasomal protein catabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">4.05 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">6</td>
## <td headers="geneID" class="gt_row gt_left">spsb1/psmc4/nsfl1c/psmd4a/psmd6/psmd1</td>
## <td headers="log_padj" class="gt_row gt_right">1.392</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0006002</td>
## <td headers="Description" class="gt_row gt_left">fructose 6-phosphate metabolic process</td>
## <td headers="p.adjust" class="gt_row gt_right">4.05 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">2</td>
## <td headers="geneID" class="gt_row gt_left">gfpt1/pfkpa</td>
## <td headers="log_padj" class="gt_row gt_right">1.392</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0022618</td>
## <td headers="Description" class="gt_row gt_left">protein-RNA complex assembly</td>
## <td headers="p.adjust" class="gt_row gt_right">6.08 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">4</td>
## <td headers="geneID" class="gt_row gt_left">prpf31/srpk1b/denr/mcts1</td>
## <td headers="log_padj" class="gt_row gt_right">1.216</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0071826</td>
## <td headers="Description" class="gt_row gt_left">protein-RNA complex organization</td>
## <td headers="p.adjust" class="gt_row gt_right">6.22 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">4</td>
## <td headers="geneID" class="gt_row gt_left">prpf31/srpk1b/denr/mcts1</td>
## <td headers="log_padj" class="gt_row gt_right">1.206</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0033617</td>
## <td headers="Description" class="gt_row gt_left">mitochondrial cytochrome c oxidase assembly</td>
## <td headers="p.adjust" class="gt_row gt_right">6.30 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">2</td>
## <td headers="geneID" class="gt_row gt_left">uqcc6/sco2</td>
## <td headers="log_padj" class="gt_row gt_right">1.201</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0006260</td>
## <td headers="Description" class="gt_row gt_left">DNA replication</td>
## <td headers="p.adjust" class="gt_row gt_right">6.30 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">4</td>
## <td headers="geneID" class="gt_row gt_left">rfc3/recql4/rmi1/ssbp1</td>
## <td headers="log_padj" class="gt_row gt_right">1.201</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0008535</td>
## <td headers="Description" class="gt_row gt_left">respiratory chain complex IV assembly</td>
## <td headers="p.adjust" class="gt_row gt_right">6.47 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">2</td>
## <td headers="geneID" class="gt_row gt_left">uqcc6/sco2</td>
## <td headers="log_padj" class="gt_row gt_right">1.189</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0007005</td>
## <td headers="Description" class="gt_row gt_left">mitochondrion organization</td>
## <td headers="p.adjust" class="gt_row gt_right">7.65 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">5</td>
## <td headers="geneID" class="gt_row gt_left">bbc3/uqcc6/sco2/ssbp1/lonp1</td>
## <td headers="log_padj" class="gt_row gt_right">1.116</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $kegg_table
## <div id="qnnofxokep" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#qnnofxokep table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #qnnofxokep thead, #qnnofxokep tbody, #qnnofxokep tfoot, #qnnofxokep tr, #qnnofxokep td, #qnnofxokep th {
##   border-style: none;
## }
## 
## #qnnofxokep p {
##   margin: 0;
##   padding: 0;
## }
## 
## #qnnofxokep .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #qnnofxokep .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #qnnofxokep .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #qnnofxokep .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #qnnofxokep .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #qnnofxokep .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #qnnofxokep .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #qnnofxokep .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #qnnofxokep .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #qnnofxokep .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #qnnofxokep .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #qnnofxokep .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #qnnofxokep .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #qnnofxokep .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #qnnofxokep .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qnnofxokep .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #qnnofxokep .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #qnnofxokep .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #qnnofxokep .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qnnofxokep .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #qnnofxokep .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qnnofxokep .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #qnnofxokep .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qnnofxokep .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #qnnofxokep .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qnnofxokep .gt_left {
##   text-align: left;
## }
## 
## #qnnofxokep .gt_center {
##   text-align: center;
## }
## 
## #qnnofxokep .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #qnnofxokep .gt_font_normal {
##   font-weight: normal;
## }
## 
## #qnnofxokep .gt_font_bold {
##   font-weight: bold;
## }
## 
## #qnnofxokep .gt_font_italic {
##   font-style: italic;
## }
## 
## #qnnofxokep .gt_super {
##   font-size: 65%;
## }
## 
## #qnnofxokep .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #qnnofxokep .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #qnnofxokep .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #qnnofxokep .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #qnnofxokep .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #qnnofxokep .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #qnnofxokep .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_title gt_font_normal" style>KEGG Pathway Enrichment Results</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Parasite Exposure Response</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="KEGG ID">KEGG ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Pathway Description">Pathway Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Adjusted P-value">Adjusted P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene Count">Gene Count</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene IDs">Gene IDs</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="-log10(adj. P-value)">-log10(adj. P-value)</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="ID" class="gt_row gt_left">dre03050</td>
## <td headers="Description" class="gt_row gt_left">Proteasome</td>
## <td headers="p.adjust" class="gt_row gt_right">8.10 × 10<sup style='font-size: 65%;'>−7</sup></td>
## <td headers="Count" class="gt_row gt_right">6</td>
## <td headers="geneID" class="gt_row gt_right">326884/415202/393261/554967/393518/393544</td>
## <td headers="log_padj" class="gt_row gt_right">6.091</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre03430</td>
## <td headers="Description" class="gt_row gt_left">Mismatch repair</td>
## <td headers="p.adjust" class="gt_row gt_right">3.61 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">2</td>
## <td headers="geneID" class="gt_row gt_right">259256/550504</td>
## <td headers="log_padj" class="gt_row gt_right">1.443</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre01230</td>
## <td headers="Description" class="gt_row gt_left">Biosynthesis of amino acids</td>
## <td headers="p.adjust" class="gt_row gt_right">3.61 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">3</td>
## <td headers="geneID" class="gt_row gt_right">386951/560827/560944</td>
## <td headers="log_padj" class="gt_row gt_right">1.443</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre05132</td>
## <td headers="Description" class="gt_row gt_left">Salmonella infection</td>
## <td headers="p.adjust" class="gt_row gt_right">3.61 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">5</td>
## <td headers="geneID" class="gt_row gt_right">100006250/336681/393154/327026/641421</td>
## <td headers="log_padj" class="gt_row gt_right">1.443</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre00030</td>
## <td headers="Description" class="gt_row gt_left">Pentose phosphate pathway</td>
## <td headers="p.adjust" class="gt_row gt_right">4.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">2</td>
## <td headers="geneID" class="gt_row gt_right">560827/560944</td>
## <td headers="log_padj" class="gt_row gt_right">1.390</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre03030</td>
## <td headers="Description" class="gt_row gt_left">DNA replication</td>
## <td headers="p.adjust" class="gt_row gt_right">4.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">2</td>
## <td headers="geneID" class="gt_row gt_right">259256/550504</td>
## <td headers="log_padj" class="gt_row gt_right">1.390</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04540</td>
## <td headers="Description" class="gt_row gt_left">Gap junction</td>
## <td headers="p.adjust" class="gt_row gt_right">4.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">3</td>
## <td headers="geneID" class="gt_row gt_right">336681/393154/641421</td>
## <td headers="log_padj" class="gt_row gt_right">1.390</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre03082</td>
## <td headers="Description" class="gt_row gt_left">ATP-dependent chromatin remodeling</td>
## <td headers="p.adjust" class="gt_row gt_right">4.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">3</td>
## <td headers="geneID" class="gt_row gt_right">406357/393225/394048</td>
## <td headers="log_padj" class="gt_row gt_right">1.390</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre01200</td>
## <td headers="Description" class="gt_row gt_left">Carbon metabolism</td>
## <td headers="p.adjust" class="gt_row gt_right">4.07 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">3</td>
## <td headers="geneID" class="gt_row gt_right">386951/560827/560944</td>
## <td headers="log_padj" class="gt_row gt_right">1.390</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04145</td>
## <td headers="Description" class="gt_row gt_left">Phagosome</td>
## <td headers="p.adjust" class="gt_row gt_right">7.95 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">3</td>
## <td headers="geneID" class="gt_row gt_right">336681/393154/641421</td>
## <td headers="log_padj" class="gt_row gt_right">1.100</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $summary_table
## <div id="qvqrbfvfft" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#qvqrbfvfft table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #qvqrbfvfft thead, #qvqrbfvfft tbody, #qvqrbfvfft tfoot, #qvqrbfvfft tr, #qvqrbfvfft td, #qvqrbfvfft th {
##   border-style: none;
## }
## 
## #qvqrbfvfft p {
##   margin: 0;
##   padding: 0;
## }
## 
## #qvqrbfvfft .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #qvqrbfvfft .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #qvqrbfvfft .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #qvqrbfvfft .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #qvqrbfvfft .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #qvqrbfvfft .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #qvqrbfvfft .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #qvqrbfvfft .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #qvqrbfvfft .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #qvqrbfvfft .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #qvqrbfvfft .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #qvqrbfvfft .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #qvqrbfvfft .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #qvqrbfvfft .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #qvqrbfvfft .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qvqrbfvfft .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #qvqrbfvfft .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #qvqrbfvfft .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #qvqrbfvfft .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qvqrbfvfft .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #qvqrbfvfft .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qvqrbfvfft .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #qvqrbfvfft .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qvqrbfvfft .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #qvqrbfvfft .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qvqrbfvfft .gt_left {
##   text-align: left;
## }
## 
## #qvqrbfvfft .gt_center {
##   text-align: center;
## }
## 
## #qvqrbfvfft .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #qvqrbfvfft .gt_font_normal {
##   font-weight: normal;
## }
## 
## #qvqrbfvfft .gt_font_bold {
##   font-weight: bold;
## }
## 
## #qvqrbfvfft .gt_font_italic {
##   font-style: italic;
## }
## 
## #qvqrbfvfft .gt_super {
##   font-size: 65%;
## }
## 
## #qvqrbfvfft .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #qvqrbfvfft .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #qvqrbfvfft .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #qvqrbfvfft .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #qvqrbfvfft .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #qvqrbfvfft .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #qvqrbfvfft .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="2" class="gt_heading gt_title gt_font_normal" style>Summary Statistics</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="2" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Parasite Exposure Response</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Metric">Metric</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Value">Value</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="Metric" class="gt_row gt_left">Total significant gene-taxa correlations</td>
## <td headers="Value" class="gt_row gt_right">80</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Unique genes involved</td>
## <td headers="Value" class="gt_row gt_right">76</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Unique taxa involved</td>
## <td headers="Value" class="gt_row gt_right">8</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Enriched GO terms</td>
## <td headers="Value" class="gt_row gt_right">13</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Enriched KEGG pathways</td>
## <td headers="Value" class="gt_row gt_right">10</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Mean absolute correlation</td>
## <td headers="Value" class="gt_row gt_right">0.484</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Median absolute correlation</td>
## <td headers="Value" class="gt_row gt_right">0.467</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>

Question 2: Historical Contingency of Parasite Response

## 
## === COMPREHENSIVE ENRICHMENT ANALYSIS - QUESTION 2: HISTORICAL CONTINGENCY OF PARASITE RESPONSE ===
## 
## === Creating comprehensive enrichment tables for: Historical_Contingency_Parasite_Response ===
## Number of unique genes: 2
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## --> No gene can be mapped....
## --> Expected input gene ID: 336606,553401,393668,393461,368912,450002
## --> return NULL...
## $comprehensive_table
## <div id="ziabxxbykn" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#ziabxxbykn table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #ziabxxbykn thead, #ziabxxbykn tbody, #ziabxxbykn tfoot, #ziabxxbykn tr, #ziabxxbykn td, #ziabxxbykn th {
##   border-style: none;
## }
## 
## #ziabxxbykn p {
##   margin: 0;
##   padding: 0;
## }
## 
## #ziabxxbykn .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #ziabxxbykn .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #ziabxxbykn .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #ziabxxbykn .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #ziabxxbykn .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #ziabxxbykn .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #ziabxxbykn .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #ziabxxbykn .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #ziabxxbykn .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #ziabxxbykn .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #ziabxxbykn .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #ziabxxbykn .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #ziabxxbykn .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #ziabxxbykn .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #ziabxxbykn .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ziabxxbykn .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #ziabxxbykn .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #ziabxxbykn .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #ziabxxbykn .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ziabxxbykn .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #ziabxxbykn .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ziabxxbykn .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #ziabxxbykn .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ziabxxbykn .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #ziabxxbykn .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ziabxxbykn .gt_left {
##   text-align: left;
## }
## 
## #ziabxxbykn .gt_center {
##   text-align: center;
## }
## 
## #ziabxxbykn .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #ziabxxbykn .gt_font_normal {
##   font-weight: normal;
## }
## 
## #ziabxxbykn .gt_font_bold {
##   font-weight: bold;
## }
## 
## #ziabxxbykn .gt_font_italic {
##   font-style: italic;
## }
## 
## #ziabxxbykn .gt_super {
##   font-size: 65%;
## }
## 
## #ziabxxbykn .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #ziabxxbykn .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #ziabxxbykn .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #ziabxxbykn .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #ziabxxbykn .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #ziabxxbykn .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #ziabxxbykn .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="11" class="gt_heading gt_title gt_font_normal" style>Top 20 Significant Gene-Taxa Correlations</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="11" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Historical Contingency of Parasite Response</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Analysis">Analysis</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene ID">Gene ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene Description">Gene Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Taxa ID">Taxa ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Correlation">Correlation</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="P-value">P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="FDR">FDR</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Abs Correlation">Abs Correlation</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Entrez ID">Entrez ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO Terms">GO Terms</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="KEGG Pathways">KEGG Pathways</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Parasite_Response</td>
## <td headers="gene_id" class="gt_row gt_left">lsm14b</td>
## <td headers="gene_description" class="gt_row gt_left">LSM family member 14B</td>
## <td headers="taxa_id" class="gt_row gt_left">Polymorphobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.377</td>
## <td headers="p_value" class="gt_row gt_right">9.99 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">3.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.377</td>
## <td headers="entrez_id" class="gt_row gt_right">393140</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Parasite_Response</td>
## <td headers="gene_id" class="gt_row gt_left">zranb2</td>
## <td headers="gene_description" class="gt_row gt_left">zinc finger, RAN-binding domain containing 2</td>
## <td headers="taxa_id" class="gt_row gt_left">Uliginosibacterium</td>
## <td headers="correlation" class="gt_row gt_right">0.627</td>
## <td headers="p_value" class="gt_row gt_right">2.40 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">2.40 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.627</td>
## <td headers="entrez_id" class="gt_row gt_right">406716</td>
## <td headers="go_terms" class="gt_row gt_left">defense response to bacterium; response to bacterium; defense response to other organism; response to external biotic stimulus; response to other organism; response to biotic stimulus; defense response</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $go_table
## <div id="bbjyvejqqe" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#bbjyvejqqe table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #bbjyvejqqe thead, #bbjyvejqqe tbody, #bbjyvejqqe tfoot, #bbjyvejqqe tr, #bbjyvejqqe td, #bbjyvejqqe th {
##   border-style: none;
## }
## 
## #bbjyvejqqe p {
##   margin: 0;
##   padding: 0;
## }
## 
## #bbjyvejqqe .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #bbjyvejqqe .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #bbjyvejqqe .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #bbjyvejqqe .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #bbjyvejqqe .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #bbjyvejqqe .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #bbjyvejqqe .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #bbjyvejqqe .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #bbjyvejqqe .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #bbjyvejqqe .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #bbjyvejqqe .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #bbjyvejqqe .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #bbjyvejqqe .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #bbjyvejqqe .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #bbjyvejqqe .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #bbjyvejqqe .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #bbjyvejqqe .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #bbjyvejqqe .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #bbjyvejqqe .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #bbjyvejqqe .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #bbjyvejqqe .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #bbjyvejqqe .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #bbjyvejqqe .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #bbjyvejqqe .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #bbjyvejqqe .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #bbjyvejqqe .gt_left {
##   text-align: left;
## }
## 
## #bbjyvejqqe .gt_center {
##   text-align: center;
## }
## 
## #bbjyvejqqe .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #bbjyvejqqe .gt_font_normal {
##   font-weight: normal;
## }
## 
## #bbjyvejqqe .gt_font_bold {
##   font-weight: bold;
## }
## 
## #bbjyvejqqe .gt_font_italic {
##   font-style: italic;
## }
## 
## #bbjyvejqqe .gt_super {
##   font-size: 65%;
## }
## 
## #bbjyvejqqe .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #bbjyvejqqe .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #bbjyvejqqe .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #bbjyvejqqe .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #bbjyvejqqe .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #bbjyvejqqe .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #bbjyvejqqe .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_title gt_font_normal" style>Gene Ontology Enrichment Results</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Historical Contingency of Parasite Response</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO ID">GO ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO Term Description">GO Term Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Adjusted P-value">Adjusted P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene Count">Gene Count</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene IDs">Gene IDs</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="-log10(adj. P-value)">-log10(adj. P-value)</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="ID" class="gt_row gt_left">GO:0042742</td>
## <td headers="Description" class="gt_row gt_left">defense response to bacterium</td>
## <td headers="p.adjust" class="gt_row gt_right">5.18 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">1</td>
## <td headers="geneID" class="gt_row gt_left">zranb2</td>
## <td headers="log_padj" class="gt_row gt_right">1.286</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0009617</td>
## <td headers="Description" class="gt_row gt_left">response to bacterium</td>
## <td headers="p.adjust" class="gt_row gt_right">5.18 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">1</td>
## <td headers="geneID" class="gt_row gt_left">zranb2</td>
## <td headers="log_padj" class="gt_row gt_right">1.286</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0098542</td>
## <td headers="Description" class="gt_row gt_left">defense response to other organism</td>
## <td headers="p.adjust" class="gt_row gt_right">5.18 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">1</td>
## <td headers="geneID" class="gt_row gt_left">zranb2</td>
## <td headers="log_padj" class="gt_row gt_right">1.286</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0043207</td>
## <td headers="Description" class="gt_row gt_left">response to external biotic stimulus</td>
## <td headers="p.adjust" class="gt_row gt_right">5.18 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">1</td>
## <td headers="geneID" class="gt_row gt_left">zranb2</td>
## <td headers="log_padj" class="gt_row gt_right">1.286</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0051707</td>
## <td headers="Description" class="gt_row gt_left">response to other organism</td>
## <td headers="p.adjust" class="gt_row gt_right">5.18 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">1</td>
## <td headers="geneID" class="gt_row gt_left">zranb2</td>
## <td headers="log_padj" class="gt_row gt_right">1.286</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0009607</td>
## <td headers="Description" class="gt_row gt_left">response to biotic stimulus</td>
## <td headers="p.adjust" class="gt_row gt_right">5.18 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">1</td>
## <td headers="geneID" class="gt_row gt_left">zranb2</td>
## <td headers="log_padj" class="gt_row gt_right">1.286</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">GO:0006952</td>
## <td headers="Description" class="gt_row gt_left">defense response</td>
## <td headers="p.adjust" class="gt_row gt_right">5.18 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">1</td>
## <td headers="geneID" class="gt_row gt_left">zranb2</td>
## <td headers="log_padj" class="gt_row gt_right">1.286</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $summary_table
## <div id="cnnzaecvzm" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#cnnzaecvzm table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #cnnzaecvzm thead, #cnnzaecvzm tbody, #cnnzaecvzm tfoot, #cnnzaecvzm tr, #cnnzaecvzm td, #cnnzaecvzm th {
##   border-style: none;
## }
## 
## #cnnzaecvzm p {
##   margin: 0;
##   padding: 0;
## }
## 
## #cnnzaecvzm .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #cnnzaecvzm .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #cnnzaecvzm .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #cnnzaecvzm .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #cnnzaecvzm .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #cnnzaecvzm .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #cnnzaecvzm .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #cnnzaecvzm .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #cnnzaecvzm .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #cnnzaecvzm .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #cnnzaecvzm .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #cnnzaecvzm .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #cnnzaecvzm .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #cnnzaecvzm .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #cnnzaecvzm .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cnnzaecvzm .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #cnnzaecvzm .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #cnnzaecvzm .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #cnnzaecvzm .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cnnzaecvzm .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #cnnzaecvzm .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cnnzaecvzm .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #cnnzaecvzm .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cnnzaecvzm .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #cnnzaecvzm .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cnnzaecvzm .gt_left {
##   text-align: left;
## }
## 
## #cnnzaecvzm .gt_center {
##   text-align: center;
## }
## 
## #cnnzaecvzm .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #cnnzaecvzm .gt_font_normal {
##   font-weight: normal;
## }
## 
## #cnnzaecvzm .gt_font_bold {
##   font-weight: bold;
## }
## 
## #cnnzaecvzm .gt_font_italic {
##   font-style: italic;
## }
## 
## #cnnzaecvzm .gt_super {
##   font-size: 65%;
## }
## 
## #cnnzaecvzm .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #cnnzaecvzm .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #cnnzaecvzm .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #cnnzaecvzm .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #cnnzaecvzm .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #cnnzaecvzm .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #cnnzaecvzm .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="2" class="gt_heading gt_title gt_font_normal" style>Summary Statistics</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="2" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Historical Contingency of Parasite Response</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Metric">Metric</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Value">Value</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="Metric" class="gt_row gt_left">Total significant gene-taxa correlations</td>
## <td headers="Value" class="gt_row gt_right">2</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Unique genes involved</td>
## <td headers="Value" class="gt_row gt_right">2</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Unique taxa involved</td>
## <td headers="Value" class="gt_row gt_right">2</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Enriched GO terms</td>
## <td headers="Value" class="gt_row gt_right">7</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Enriched KEGG pathways</td>
## <td headers="Value" class="gt_row gt_right">0</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Mean absolute correlation</td>
## <td headers="Value" class="gt_row gt_right">0.502</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Median absolute correlation</td>
## <td headers="Value" class="gt_row gt_right">0.502</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>

Question 3: Historical Contingency of Recovery

## 
## === COMPREHENSIVE ENRICHMENT ANALYSIS - QUESTION 3: HISTORICAL CONTINGENCY OF RECOVERY ===
## 
## === Creating comprehensive enrichment tables for: Historical_Contingency_Recovery ===
## Number of unique genes: 63
## 'select()' returned 1:1 mapping between keys and columns
## 'select()' returned 1:1 mapping between keys and columns
## $comprehensive_table
## <div id="ktzqtdtkqi" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#ktzqtdtkqi table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #ktzqtdtkqi thead, #ktzqtdtkqi tbody, #ktzqtdtkqi tfoot, #ktzqtdtkqi tr, #ktzqtdtkqi td, #ktzqtdtkqi th {
##   border-style: none;
## }
## 
## #ktzqtdtkqi p {
##   margin: 0;
##   padding: 0;
## }
## 
## #ktzqtdtkqi .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #ktzqtdtkqi .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #ktzqtdtkqi .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #ktzqtdtkqi .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #ktzqtdtkqi .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #ktzqtdtkqi .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #ktzqtdtkqi .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #ktzqtdtkqi .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #ktzqtdtkqi .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #ktzqtdtkqi .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #ktzqtdtkqi .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #ktzqtdtkqi .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #ktzqtdtkqi .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #ktzqtdtkqi .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #ktzqtdtkqi .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ktzqtdtkqi .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #ktzqtdtkqi .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #ktzqtdtkqi .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #ktzqtdtkqi .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ktzqtdtkqi .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #ktzqtdtkqi .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ktzqtdtkqi .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #ktzqtdtkqi .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ktzqtdtkqi .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #ktzqtdtkqi .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #ktzqtdtkqi .gt_left {
##   text-align: left;
## }
## 
## #ktzqtdtkqi .gt_center {
##   text-align: center;
## }
## 
## #ktzqtdtkqi .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #ktzqtdtkqi .gt_font_normal {
##   font-weight: normal;
## }
## 
## #ktzqtdtkqi .gt_font_bold {
##   font-weight: bold;
## }
## 
## #ktzqtdtkqi .gt_font_italic {
##   font-style: italic;
## }
## 
## #ktzqtdtkqi .gt_super {
##   font-size: 65%;
## }
## 
## #ktzqtdtkqi .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #ktzqtdtkqi .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #ktzqtdtkqi .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #ktzqtdtkqi .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #ktzqtdtkqi .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #ktzqtdtkqi .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #ktzqtdtkqi .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="11" class="gt_heading gt_title gt_font_normal" style>Top 20 Significant Gene-Taxa Correlations</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="11" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Historical Contingency of Recovery</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Analysis">Analysis</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene ID">Gene ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Gene Description">Gene Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Taxa ID">Taxa ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Correlation">Correlation</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="P-value">P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="FDR">FDR</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Abs Correlation">Abs Correlation</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Entrez ID">Entrez ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="GO Terms">GO Terms</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="KEGG Pathways">KEGG Pathways</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100001589</td>
## <td headers="gene_description" class="gt_row gt_left">tripartite motif-containing protein 47-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Runella</td>
## <td headers="correlation" class="gt_row gt_right">−0.503</td>
## <td headers="p_value" class="gt_row gt_right">7.99 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">3.27 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.503</td>
## <td headers="entrez_id" class="gt_row gt_right">100001589</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100537840</td>
## <td headers="gene_description" class="gt_row gt_left">E3 ubiquitin-protein ligase rnf213-alpha-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Pirellula</td>
## <td headers="correlation" class="gt_row gt_right">−0.768</td>
## <td headers="p_value" class="gt_row gt_right">5.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.15 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.768</td>
## <td headers="entrez_id" class="gt_row gt_right">100537840</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100537840</td>
## <td headers="gene_description" class="gt_row gt_left">E3 ubiquitin-protein ligase rnf213-alpha-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Reyranella</td>
## <td headers="correlation" class="gt_row gt_right">−0.340</td>
## <td headers="p_value" class="gt_row gt_right">5.69 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">8.92 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.340</td>
## <td headers="entrez_id" class="gt_row gt_right">100537840</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC100537840</td>
## <td headers="gene_description" class="gt_row gt_left">E3 ubiquitin-protein ligase rnf213-alpha-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Runella</td>
## <td headers="correlation" class="gt_row gt_right">−0.476</td>
## <td headers="p_value" class="gt_row gt_right">5.59 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">8.92 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.476</td>
## <td headers="entrez_id" class="gt_row gt_right">100537840</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882702</td>
## <td headers="gene_description" class="gt_row gt_left">golgin subfamily A member 6-like protein 22</td>
## <td headers="taxa_id" class="gt_row gt_left">Neochlamydia</td>
## <td headers="correlation" class="gt_row gt_right">−0.390</td>
## <td headers="p_value" class="gt_row gt_right">6.39 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">9.62 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.390</td>
## <td headers="entrez_id" class="gt_row gt_right">101882702</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882702</td>
## <td headers="gene_description" class="gt_row gt_left">golgin subfamily A member 6-like protein 22</td>
## <td headers="taxa_id" class="gt_row gt_left">Roseomonas</td>
## <td headers="correlation" class="gt_row gt_right">−0.555</td>
## <td headers="p_value" class="gt_row gt_right">5.79 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">7.37 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.555</td>
## <td headers="entrez_id" class="gt_row gt_right">101882702</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101882847</td>
## <td headers="gene_description" class="gt_row gt_left">rho-associated protein kinase 1-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Pseudoxanthomonas</td>
## <td headers="correlation" class="gt_row gt_right">0.901</td>
## <td headers="p_value" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">1.69 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.901</td>
## <td headers="entrez_id" class="gt_row gt_right">101882847</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101883008</td>
## <td headers="gene_description" class="gt_row gt_left">zinc finger protein 664-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.424</td>
## <td headers="p_value" class="gt_row gt_right">4.70 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">6.68 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.424</td>
## <td headers="entrez_id" class="gt_row gt_right">101883008</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101883092</td>
## <td headers="gene_description" class="gt_row gt_left">interferon-induced very large GTPase 1-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Pirellula</td>
## <td headers="correlation" class="gt_row gt_right">−0.709</td>
## <td headers="p_value" class="gt_row gt_right">2.50 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.76 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.709</td>
## <td headers="entrez_id" class="gt_row gt_right">101883092</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC101883092</td>
## <td headers="gene_description" class="gt_row gt_left">interferon-induced very large GTPase 1-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Runella</td>
## <td headers="correlation" class="gt_row gt_right">−0.508</td>
## <td headers="p_value" class="gt_row gt_right">2.20 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.76 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.508</td>
## <td headers="entrez_id" class="gt_row gt_right">101883092</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC103910189</td>
## <td headers="gene_description" class="gt_row gt_left">interferon-induced very large GTPase 1-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Pirellula</td>
## <td headers="correlation" class="gt_row gt_right">−0.681</td>
## <td headers="p_value" class="gt_row gt_right">2.40 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.76 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.681</td>
## <td headers="entrez_id" class="gt_row gt_right">103910189</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC103910189</td>
## <td headers="gene_description" class="gt_row gt_left">interferon-induced very large GTPase 1-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Runella</td>
## <td headers="correlation" class="gt_row gt_right">−0.471</td>
## <td headers="p_value" class="gt_row gt_right">2.50 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">5.76 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.471</td>
## <td headers="entrez_id" class="gt_row gt_right">103910189</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC108183350</td>
## <td headers="gene_description" class="gt_row gt_left">protein NLRC3-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Luteolibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.369</td>
## <td headers="p_value" class="gt_row gt_right">3.50 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">7.03 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.369</td>
## <td headers="entrez_id" class="gt_row gt_right">108183350</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC110438438</td>
## <td headers="gene_description" class="gt_row gt_left">serine/threonine-protein kinase 38-like</td>
## <td headers="taxa_id" class="gt_row gt_left">Pseudoxanthomonas</td>
## <td headers="correlation" class="gt_row gt_right">0.539</td>
## <td headers="p_value" class="gt_row gt_right">4.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">2.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.539</td>
## <td headers="entrez_id" class="gt_row gt_right">110438438</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC110439307</td>
## <td headers="gene_description" class="gt_row gt_left">uncharacterized LOC110439307</td>
## <td headers="taxa_id" class="gt_row gt_left">Pseudoxanthomonas</td>
## <td headers="correlation" class="gt_row gt_right">−0.661</td>
## <td headers="p_value" class="gt_row gt_right">8.19 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">9.70 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.661</td>
## <td headers="entrez_id" class="gt_row gt_right">110439307</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC137487211</td>
## <td headers="gene_description" class="gt_row gt_left">LOC137487211</td>
## <td headers="taxa_id" class="gt_row gt_left">Culicoidibacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.378</td>
## <td headers="p_value" class="gt_row gt_right">5.89 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">7.37 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.378</td>
## <td headers="entrez_id" class="gt_row gt_right">NA</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC137487211</td>
## <td headers="gene_description" class="gt_row gt_left">LOC137487211</td>
## <td headers="taxa_id" class="gt_row gt_left">Flavobacterium</td>
## <td headers="correlation" class="gt_row gt_right">−0.731</td>
## <td headers="p_value" class="gt_row gt_right">3.90 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">6.20 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.731</td>
## <td headers="entrez_id" class="gt_row gt_right">NA</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC137489722</td>
## <td headers="gene_description" class="gt_row gt_left">LOC137489722</td>
## <td headers="taxa_id" class="gt_row gt_left">Pseudoxanthomonas</td>
## <td headers="correlation" class="gt_row gt_right">0.979</td>
## <td headers="p_value" class="gt_row gt_right">4.00 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">6.20 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.979</td>
## <td headers="entrez_id" class="gt_row gt_right">NA</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC137496053</td>
## <td headers="gene_description" class="gt_row gt_left">LOC137496053</td>
## <td headers="taxa_id" class="gt_row gt_left">Gemmobacter</td>
## <td headers="correlation" class="gt_row gt_right">−0.463</td>
## <td headers="p_value" class="gt_row gt_right">1.10 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.34 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.463</td>
## <td headers="entrez_id" class="gt_row gt_right">NA</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##     <tr><td headers="analysis" class="gt_row gt_left">Historical_Contingency_Recovery</td>
## <td headers="gene_id" class="gt_row gt_left">LOC137496184</td>
## <td headers="gene_description" class="gt_row gt_left">LOC137496184</td>
## <td headers="taxa_id" class="gt_row gt_left">Bosea</td>
## <td headers="correlation" class="gt_row gt_right">−0.522</td>
## <td headers="p_value" class="gt_row gt_right">4.00 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="fdr" class="gt_row gt_right">4.15 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="abs_correlation" class="gt_row gt_right">0.522</td>
## <td headers="entrez_id" class="gt_row gt_right">NA</td>
## <td headers="go_terms" class="gt_row gt_left">NA</td>
## <td headers="kegg_pathways" class="gt_row gt_left">NA</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $kegg_table
## <div id="qmqtaqabhp" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#qmqtaqabhp table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #qmqtaqabhp thead, #qmqtaqabhp tbody, #qmqtaqabhp tfoot, #qmqtaqabhp tr, #qmqtaqabhp td, #qmqtaqabhp th {
##   border-style: none;
## }
## 
## #qmqtaqabhp p {
##   margin: 0;
##   padding: 0;
## }
## 
## #qmqtaqabhp .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #qmqtaqabhp .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #qmqtaqabhp .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #qmqtaqabhp .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #qmqtaqabhp .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #qmqtaqabhp .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #qmqtaqabhp .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #qmqtaqabhp .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #qmqtaqabhp .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #qmqtaqabhp .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #qmqtaqabhp .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #qmqtaqabhp .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #qmqtaqabhp .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #qmqtaqabhp .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #qmqtaqabhp .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qmqtaqabhp .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #qmqtaqabhp .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #qmqtaqabhp .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #qmqtaqabhp .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qmqtaqabhp .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #qmqtaqabhp .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qmqtaqabhp .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #qmqtaqabhp .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qmqtaqabhp .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #qmqtaqabhp .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #qmqtaqabhp .gt_left {
##   text-align: left;
## }
## 
## #qmqtaqabhp .gt_center {
##   text-align: center;
## }
## 
## #qmqtaqabhp .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #qmqtaqabhp .gt_font_normal {
##   font-weight: normal;
## }
## 
## #qmqtaqabhp .gt_font_bold {
##   font-weight: bold;
## }
## 
## #qmqtaqabhp .gt_font_italic {
##   font-style: italic;
## }
## 
## #qmqtaqabhp .gt_super {
##   font-size: 65%;
## }
## 
## #qmqtaqabhp .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #qmqtaqabhp .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #qmqtaqabhp .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #qmqtaqabhp .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #qmqtaqabhp .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #qmqtaqabhp .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #qmqtaqabhp .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_title gt_font_normal" style>KEGG Pathway Enrichment Results</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="6" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Historical Contingency of Recovery</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="KEGG ID">KEGG ID</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Pathway Description">Pathway Description</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Adjusted P-value">Adjusted P-value</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene Count">Gene Count</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Gene IDs">Gene IDs</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="-log10(adj. P-value)">-log10(adj. P-value)</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="ID" class="gt_row gt_left">dre04622</td>
## <td headers="Description" class="gt_row gt_left">RIG-I-like receptor signaling pathway</td>
## <td headers="p.adjust" class="gt_row gt_right">3.11 × 10<sup style='font-size: 65%;'>−3</sup></td>
## <td headers="Count" class="gt_row gt_right">3</td>
## <td headers="geneID" class="gt_row gt_right">100148871/405785/564854</td>
## <td headers="log_padj" class="gt_row gt_right">2.507</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04621</td>
## <td headers="Description" class="gt_row gt_left">NOD-like receptor signaling pathway</td>
## <td headers="p.adjust" class="gt_row gt_right">2.31 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">3</td>
## <td headers="geneID" class="gt_row gt_right">405785/564854/641582</td>
## <td headers="log_padj" class="gt_row gt_right">1.637</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre05132</td>
## <td headers="Description" class="gt_row gt_left">Salmonella infection</td>
## <td headers="p.adjust" class="gt_row gt_right">7.93 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">3</td>
## <td headers="geneID" class="gt_row gt_right">100006857/405785/448942</td>
## <td headers="log_padj" class="gt_row gt_right">1.101</td></tr>
##     <tr><td headers="ID" class="gt_row gt_left">dre04620</td>
## <td headers="Description" class="gt_row gt_left">Toll-like receptor signaling pathway</td>
## <td headers="p.adjust" class="gt_row gt_right">7.93 × 10<sup style='font-size: 65%;'>−2</sup></td>
## <td headers="Count" class="gt_row gt_right">2</td>
## <td headers="geneID" class="gt_row gt_right">405785/564854</td>
## <td headers="log_padj" class="gt_row gt_right">1.101</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>
## 
## $summary_table
## <div id="cemlaseoxf" style="padding-left:0px;padding-right:0px;padding-top:10px;padding-bottom:10px;overflow-x:auto;overflow-y:auto;width:auto;height:auto;">
##   <style>#cemlaseoxf table {
##   font-family: system-ui, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
##   -webkit-font-smoothing: antialiased;
##   -moz-osx-font-smoothing: grayscale;
## }
## 
## #cemlaseoxf thead, #cemlaseoxf tbody, #cemlaseoxf tfoot, #cemlaseoxf tr, #cemlaseoxf td, #cemlaseoxf th {
##   border-style: none;
## }
## 
## #cemlaseoxf p {
##   margin: 0;
##   padding: 0;
## }
## 
## #cemlaseoxf .gt_table {
##   display: table;
##   border-collapse: collapse;
##   line-height: normal;
##   margin-left: auto;
##   margin-right: auto;
##   color: #333333;
##   font-size: 16px;
##   font-weight: normal;
##   font-style: normal;
##   background-color: #FFFFFF;
##   width: auto;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #A8A8A8;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #A8A8A8;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_caption {
##   padding-top: 4px;
##   padding-bottom: 4px;
## }
## 
## #cemlaseoxf .gt_title {
##   color: #333333;
##   font-size: 125%;
##   font-weight: initial;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-color: #FFFFFF;
##   border-bottom-width: 0;
## }
## 
## #cemlaseoxf .gt_subtitle {
##   color: #333333;
##   font-size: 85%;
##   font-weight: initial;
##   padding-top: 3px;
##   padding-bottom: 5px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-color: #FFFFFF;
##   border-top-width: 0;
## }
## 
## #cemlaseoxf .gt_heading {
##   background-color: #FFFFFF;
##   text-align: center;
##   border-bottom-color: #FFFFFF;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_bottom_border {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_col_headings {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_col_heading {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 6px;
##   padding-left: 5px;
##   padding-right: 5px;
##   overflow-x: hidden;
## }
## 
## #cemlaseoxf .gt_column_spanner_outer {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: normal;
##   text-transform: inherit;
##   padding-top: 0;
##   padding-bottom: 0;
##   padding-left: 4px;
##   padding-right: 4px;
## }
## 
## #cemlaseoxf .gt_column_spanner_outer:first-child {
##   padding-left: 0;
## }
## 
## #cemlaseoxf .gt_column_spanner_outer:last-child {
##   padding-right: 0;
## }
## 
## #cemlaseoxf .gt_column_spanner {
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: bottom;
##   padding-top: 5px;
##   padding-bottom: 5px;
##   overflow-x: hidden;
##   display: inline-block;
##   width: 100%;
## }
## 
## #cemlaseoxf .gt_spanner_row {
##   border-bottom-style: hidden;
## }
## 
## #cemlaseoxf .gt_group_heading {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   text-align: left;
## }
## 
## #cemlaseoxf .gt_empty_group_heading {
##   padding: 0.5px;
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   vertical-align: middle;
## }
## 
## #cemlaseoxf .gt_from_md > :first-child {
##   margin-top: 0;
## }
## 
## #cemlaseoxf .gt_from_md > :last-child {
##   margin-bottom: 0;
## }
## 
## #cemlaseoxf .gt_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   margin: 10px;
##   border-top-style: solid;
##   border-top-width: 1px;
##   border-top-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 1px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 1px;
##   border-right-color: #D3D3D3;
##   vertical-align: middle;
##   overflow-x: hidden;
## }
## 
## #cemlaseoxf .gt_stub {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cemlaseoxf .gt_stub_row_group {
##   color: #333333;
##   background-color: #FFFFFF;
##   font-size: 100%;
##   font-weight: initial;
##   text-transform: inherit;
##   border-right-style: solid;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
##   padding-left: 5px;
##   padding-right: 5px;
##   vertical-align: top;
## }
## 
## #cemlaseoxf .gt_row_group_first td {
##   border-top-width: 2px;
## }
## 
## #cemlaseoxf .gt_row_group_first th {
##   border-top-width: 2px;
## }
## 
## #cemlaseoxf .gt_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cemlaseoxf .gt_first_summary_row {
##   border-top-style: solid;
##   border-top-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_first_summary_row.thick {
##   border-top-width: 2px;
## }
## 
## #cemlaseoxf .gt_last_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_grand_summary_row {
##   color: #333333;
##   background-color: #FFFFFF;
##   text-transform: inherit;
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cemlaseoxf .gt_first_grand_summary_row {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-top-style: double;
##   border-top-width: 6px;
##   border-top-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_last_grand_summary_row_top {
##   padding-top: 8px;
##   padding-bottom: 8px;
##   padding-left: 5px;
##   padding-right: 5px;
##   border-bottom-style: double;
##   border-bottom-width: 6px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_striped {
##   background-color: rgba(128, 128, 128, 0.05);
## }
## 
## #cemlaseoxf .gt_table_body {
##   border-top-style: solid;
##   border-top-width: 2px;
##   border-top-color: #D3D3D3;
##   border-bottom-style: solid;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_footnotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_footnote {
##   margin: 0px;
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cemlaseoxf .gt_sourcenotes {
##   color: #333333;
##   background-color: #FFFFFF;
##   border-bottom-style: none;
##   border-bottom-width: 2px;
##   border-bottom-color: #D3D3D3;
##   border-left-style: none;
##   border-left-width: 2px;
##   border-left-color: #D3D3D3;
##   border-right-style: none;
##   border-right-width: 2px;
##   border-right-color: #D3D3D3;
## }
## 
## #cemlaseoxf .gt_sourcenote {
##   font-size: 90%;
##   padding-top: 4px;
##   padding-bottom: 4px;
##   padding-left: 5px;
##   padding-right: 5px;
## }
## 
## #cemlaseoxf .gt_left {
##   text-align: left;
## }
## 
## #cemlaseoxf .gt_center {
##   text-align: center;
## }
## 
## #cemlaseoxf .gt_right {
##   text-align: right;
##   font-variant-numeric: tabular-nums;
## }
## 
## #cemlaseoxf .gt_font_normal {
##   font-weight: normal;
## }
## 
## #cemlaseoxf .gt_font_bold {
##   font-weight: bold;
## }
## 
## #cemlaseoxf .gt_font_italic {
##   font-style: italic;
## }
## 
## #cemlaseoxf .gt_super {
##   font-size: 65%;
## }
## 
## #cemlaseoxf .gt_footnote_marks {
##   font-size: 75%;
##   vertical-align: 0.4em;
##   position: initial;
## }
## 
## #cemlaseoxf .gt_asterisk {
##   font-size: 100%;
##   vertical-align: 0;
## }
## 
## #cemlaseoxf .gt_indent_1 {
##   text-indent: 5px;
## }
## 
## #cemlaseoxf .gt_indent_2 {
##   text-indent: 10px;
## }
## 
## #cemlaseoxf .gt_indent_3 {
##   text-indent: 15px;
## }
## 
## #cemlaseoxf .gt_indent_4 {
##   text-indent: 20px;
## }
## 
## #cemlaseoxf .gt_indent_5 {
##   text-indent: 25px;
## }
## </style>
##   <table class="gt_table" data-quarto-disable-processing="false" data-quarto-bootstrap="false">
##   <thead>
##     <tr class="gt_heading">
##       <td colspan="2" class="gt_heading gt_title gt_font_normal" style>Summary Statistics</td>
##     </tr>
##     <tr class="gt_heading">
##       <td colspan="2" class="gt_heading gt_subtitle gt_font_normal gt_bottom_border" style>Historical Contingency of Recovery</td>
##     </tr>
##     <tr class="gt_col_headings">
##       <th class="gt_col_heading gt_columns_bottom_border gt_left" rowspan="1" colspan="1" scope="col" id="Metric">Metric</th>
##       <th class="gt_col_heading gt_columns_bottom_border gt_right" rowspan="1" colspan="1" scope="col" id="Value">Value</th>
##     </tr>
##   </thead>
##   <tbody class="gt_table_body">
##     <tr><td headers="Metric" class="gt_row gt_left">Total significant gene-taxa correlations</td>
## <td headers="Value" class="gt_row gt_right">97</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Unique genes involved</td>
## <td headers="Value" class="gt_row gt_right">63</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Unique taxa involved</td>
## <td headers="Value" class="gt_row gt_right">24</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Enriched GO terms</td>
## <td headers="Value" class="gt_row gt_right">0</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Enriched KEGG pathways</td>
## <td headers="Value" class="gt_row gt_right">4</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Mean absolute correlation</td>
## <td headers="Value" class="gt_row gt_right">0.586</td></tr>
##     <tr><td headers="Metric" class="gt_row gt_left">Median absolute correlation</td>
## <td headers="Value" class="gt_row gt_right">0.572</td></tr>
##   </tbody>
##   
##   
## </table>
## </div>

Results Export

Summary and Conclusions

## 
## === INTEGRATED ANALYSIS SUMMARY ===
Integrated Analysis Summary
Gene-taxa correlations across three key research questions
Research Question N Significant Correlations N Significant Partial Correlations N Unique Genes N Unique Taxa
1. Parasite Exposure Response (A- T- P- vs A- T- P+) 11681 80 2368 22
2. Historical Contingency of Parasite Response (A- T- P+ vs A+ T- P+ vs A- T+ P+ vs A+ T+ P+) 4 2 3 3
3. Historical Contingency of Recovery (A- T- P- vs A+ T- P- vs A- T+ P- vs A+ T+ P-) 144 97 78 30
## 
## === FILES SUMMARY ===
## Results directory: /Users/michaelsieler/Dropbox/Mac (2)/Documents/Sharpton_Lab/Projects_Repository/Rules_of_Life/major-experiment-2023/Code/Analysis/DEGxDAT/Results
## Configuration: LOAD_EXISTING_RESULTS = TRUE
## Analysis results were loaded from existing files.
## To recompute results, set LOAD_EXISTING_RESULTS = FALSE in the configuration section.
## 
## Available result files:
## - all_enrichment_results_20250707_115941.rds (modified: 2025-07-07 11:59:54 )
## - all_enrichment_results_20250707_120317.rds (modified: 2025-07-07 12:03:18 )
## - results_all_20250630_200742.rds (modified: 2025-06-30 20:08:10 )
## - results_historical_contingency_20250630_200918.rds (modified: 2025-06-30 20:09:18 )
## - results_parasite_20250630_200828.rds (modified: 2025-06-30 20:08:28 )
## - results_recovery_20250630_201002.rds (modified: 2025-06-30 20:10:02 )

```